Automatyczne uruchamianie zadań
Wszystkie dotychczas poznane polecenia wykonywane były przez system natychmiast po ich wydaniu. Czasem jednak chcielibyśmy, aby polecenie było wykonane w określonym momencie w przyszłości. Istnieją również w systemie zdarzenia, które powinny być uruchamiane cyklicznie, np. uaktualnianie bazy wirusów, sporządzanie kopii zapasowych. Do obsługi tego typu zdarzeń wykorzystać możemy demony atd i crond.
Polecenie at wykorzystuje demona atd do jednokrotnego wykonania polecenia w zadanym czasie - czyta ze standardowego wejścia (klawiatury) lub podanego pliku polecenia, które mają zostać wykonane przy użyciu powłoki.
Nowe zlecenie realizowane za pomocą at musi zawierać informację o czasie jego wykonania. Czas w at możemy podawać na wiele sposobów, np.
at 18 :21 - podając godzinę wykonania zadania,
at 18:23 04.03.04 - podając godzinę i konkretny dzień wykonania zadania,
at 4pm + 3 days - można stosować znak + jako informację, że czas (data) wykonania to suma dwóch czasów (dat), np. za trzy dni o czwartej,
at 10am Jul 31 04 - daty i czasy mogą być mieszane.
Przykład zarządzania zleceniami. Zlecenia dotyczą wylistowania o godzinie 20~ zawartości folderu /home w dniu dzisiejszym oraz w dniu 11.10.2008. Składanie zlecenia kończymy kombinacją klawiszy [Ctrł]+[d]. Zobaczmy potwierdzenie wraz z podanym terminem uruchomienia polecenia. Jeśli z jakiegoś powodu zrezygnujemy z wykonywania zleconego polecenia, możemy je usunąć poleceniem atrm z podanym numerem zadania przeznaczonego do skasowania. Numer ten możemy odczytać w pierwszej kolumnie wyniku polecenia atq wyświetlającego kolejką zadań do wykonania.
[root@kp-fc9 root]# at 15:45 |
at> Is /home > lista.txt |
at> <EOT> |
job 1 at 2013-01-30 15:45 |
Demon cron służy do uruchamiania zadań systemowych o określonym czasie, z dokładnością do minuty. Przydatny jest zarówno do harmonogramowania czynności administracyjnych (archiwizacja, usuwanie plików tymczasowych, audyty bezpieczeństwa), jak również do uruchamiania asynchronicznie dowolnych programów/skryptów czy innych usług np. z określonymi parametrami.
Cron przeszukuje pliki „crontab” (tabele) które znajdują się w /var/spool/cron/crontabs i odczytuje zawarte w nich instrukcje. W pliku /etc/crontab wpisane są dodatkowe reguły, które uruchamiają zadania cogodzinowe, codzienne, cotygodniowe oraz comiesięczne. Zadania te (w postaci skryptów) znajdują się kolejno w : /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly i /etc/cron.monthly.
Wpisy w plikach crontab zbudowane są z 6 pól. Pierwsze 5 pól określa czas wykonania, natomiast 6 pole czynność.
Opis poszczególnych pól:
- Minuta (od 0 do 59)
- Godzina (od 0 do 23)
- Dzień (od 0 do 31)
- Miesiąc (od 0 do 12)
- Dzień tygodnia (od 0 do 7)
- Polecenie (reszta)
Jeśli dane pole zawiera gwiazdkę (*), oznacza „wykonuj zawsze”.
Żeby uruchomić określony skrypt lub zadanie, wydajemy polecenie:
crontab -e (edytuj tablicę crona)
i dopisujemy do niej przykładowo:
*/2 * * * * exec /ścieżka/do/skryptu
Teraz co dwie minuty będzie wykonywany skrypt - do którego ścieżkę podaliśmy w tablicy. Inne przykłady:
0 2 * * * /sbin/shutdown -h now - wpis oznacza, że codziennie o 2.00 będzie wyłączany komputer
0 22 * * 1-5 mail -s „Mail od crona” - codziennie o 22.00 wysyłaj maila o podanej treści do właściciela
0 11 * * 1,3 /opt/skrypt.sh - uruchamiaj /opt/skrypt.sh w każdy poniedziałek i środę o godz. 11
Ponadto:
crontab -l - wyświetla listę zadań bieżącego użytkownika systemowego zdefiniowaną w tablicy crona
crontab -e - edytuje tablicę
crontab -r czyśc tablicę
Cron loguje wszystkie swoje czynności do /var/log/cron (pośredniczy w tym demon syslogd).
date
cal
cal -y
pwd - nazwa bieżącego katalogu
ls - wyświetla zawartość bieżącego lub wskazanego katalogu
ls -a - - wyświetla zawartość bieżącego lub wskazanego katalogu z plikami ukrytymi
ls -d - wyświetla nazwy plików podrzędnych
s - wyświetla rozszerzone informacje o plikach
ls -1 - wyświetla pliki w jednej kolumnie
mkdir animals - tworzenie archiwum
rmdir - usuwamy puste katalogi.
cd Dokumenty - Zmiana bieżącego katalogu na podany
cd .. - jeden katalog wyżej
cd. - bieżący katalog
cd ~ - przejście tyldy przejście do nowego katalogu do nowego użytkownika
sudo - działania z uprawnieniami administratorskimi polecenia poprzedzone
sudo -s
clear - czyszczenie zawartości konsoli
cat archiwum.sh - Zawartość plików wyświetlamy poleceniem cat.
Jeśli chcemy przyjrzeć się plikowi, który nie mieści się na ekranie po wykonania cat możemy uzyskać poleceniem less. Możemy wtedy przeglądać plik używając "strzałek", a kiedy skończymy - naciskamy q.
less plik
Komendą touch możemy modyfikować znaczniki czasu pliku, częściej jednak używa się jej do tworzenia pustych plików.
touch pusty_plik
Plik możemy przenieść, albo zmienić jego nazwę, za pomocą polecenia mv.
mv listing listing.old
mv /home/listing.old /usr/src/
W podobny sposób operujemy na katalogach.
mv archiwum smietnik
mvdir smietnik /usr/src/smietnik/
Do kopiowania służy polecenie cp.
$ cp listing.sh home/michal/Dokumenty/
Kopiowanie plików znajdujących sie wewnątrz katalogów. Bez -R kopiowanie są katalogi bez plików
$ cp -R Dokumenty/Dokumenty1
$ cp -R -p Dokumenty/Dokumenty1 - zachowuje dane o właścicielu pliku i o prawach dostępu.
Kasujemy poleceniem rm.
rm plik - kasuje plik.
rm * - kasuje wszystkie pliki w danym katalogu.
rm * -i - kasuje wszystkie pliki w danym katalogu z potwierdzeniem.
rm * -f - kasuje wszystkie pliki w danym katalogu bez pytania.
rm -r - kasuje wszystkie pliki, także te w podkatalogach
rm -rf /home/ - kasuje wszystkie pliki i katalogi w katalogu /home/
rm -R - wymusza kasowanie plików wewnątrz katalogów
drw-r--r-- 1 user admin 4096 maj 28 16:38 folder1/
drwxrwxr-x 6 user admin 4096 maj 25 19:18 folder2/
drw-rw-r-- 1 user admin 4096 maj 26 15:56 folder3/
1 znak to identyfikator typu obiektu, 3 kolejne znaki to uprawnienia użytkownika, kolejne 3 to uprawniania grupy i 3 ostatnie to uprawniania innych
- - zwykły plik
d - katalog
c - plik znakowy
b - plik blokowy
l - dowiązanie symboliczne
s - gniazdo
p - nazwany potok
1 kolumna uprawnienia do zbiorów
- brak praw
x Wykonywanie
w Pisanie
wx Wykonywanie i pisanie
r Czytanie
rx Czytanie i wykonywanie
rw Czytanie i pisanie
rwx Czytanie, pisanie i wykonywanie
2 kolumna liczba odwołań do danego pliku
3 i 4 nazwa użytkownika i grupy
5 rozmiar pliku w bajtach
6 data i dozina utowrzenia lub modyfikacji pliku lub jego zawartości
7 nazwa pliku lub katalogu.
Dodawanie uprawnień
a - all, wszyscy
u - user, użytkownik
g - group, grupa
o - others, inni
+ - dodanie prawa
- - odebranie prawa
= - zastąpienie starego uprawnienia nowym
$ chmod a+w plik.txt - wszyscy będą mogli edytować 'plik.txt'
$ chmod o-x plik.txt - usunie możliwość wykonywania 'plik.txt' przez pozostałych użytkowników
$ chmod go=rx plik.txt - pozostali użytkownicy, oraz grupa będą mogli tylko czytać i wykonywać.
$ chmod -R 777 /home/user - wszyscy będą mogli zmieniać zawartość katalogu /home/user oraz jego podkatalogów, jak też czytać go i wykonywać zawarte w nim pliki
Inne polecenia w pliku
Jak i dlaczego powstał irlandzki taniec?
http://www.youtube.com/watch?v=8dYWhBIaNmg