SSH - Zaplanowane zadania

Procédure

SSH - Zaplanowane zadania

Wiele czynności administracyjnych można zautomatyzować za pomocą skryptów Perla lub skryptów powłoki uruchamianych w regularnych odstępach czasu. Na przykład możesz mieć skrypt sprawdzający, czy dysk nie jest pełny, który uruchamia się raz na godzinę, aby poinformować Cię o ewentualnych problemach. Najpopularniejszym mechanizmem planowania poleceń w systemach Linux jest pakiet cron.

W Debianie pakiet cron jest częścią systemu bazowego i jest domyślnie uruchomiony.

Cron jest dostarczany z Debianem w dwóch celach:

  • Aby uruchamiać zadania systemowe codziennie/tygodniowo/miesięcznie.

  • Aby umożliwić użytkownikom konfigurowanie własnych zaplanowanych zadań.


Pakiet Cron automatycznie tworzy następujące katalogi:

/etc/cron.d /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly


Oprócz pierwszego, który jest specjalny, katalogi te pozwalają w prosty sposób zaplanować zadania dla całego systemu. Każdy skrypt umieszczony w nich będzie uruchamiany tak często, jak sugeruje jego nazwa.

Na przykład, jeśli umieścisz skrypt wewnątrz /etc/cron.daily, będzie on uruchamiany raz dziennie, każdego dnia.

Katalogi te są przydatne w niektórych przypadkach, ale jeśli trzeba bardziej dostosować czasy wykonywania, można to zrobić poprzez edycję pliku /etc/crontab, co wyjaśnimy dalej:

Normalnym sposobem korzystania z crona jest użycie polecenia crontab. Pozwala to na przeglądanie lub edycję pliku crontab, który jest plikiem dla każdego użytkownika zawierającym wpisy opisujące polecenia do uruchomienia i czas ich wykonania.

Aby wyświetlić plik, należy uruchomić następujące polecenie:

crontab -l


Użytkownik root może wyświetlić plik crontab dowolnego użytkownika, dodając -u username, na przykład :

crontab -u username -l


Format tych plików jest dość prosty do zrozumienia. Każda linia jest zbiorem sześciu pól oddzielonych spacjami.

Pola te to :

  1. Liczba minut po godzinie (od 0 do 59)

  2. Godzina w formacie czasu wojskowego (24 godziny) (od 0 do 23)

  3. Dzień miesiąca (od 1 do 31).

  4. Miesiąc (od 1 do 12).

  5. Dzień tygodnia (0 lub 7).

  6. Polecenie do wykonania.


Wyglądałyby one następująco:

* * * * Polecenie do wykonania - - - - - - - | | | | | | | | +-----> Dzień tygodnia (0-7) | | +-----------> Miesiąc (1 - 12) | +-----------------> Dzień miesiąca (1 - 31) | +-----------------------> Godzina (0 - 23) +-----------------------------> Minuty (0 - 59)

(Każde z pierwszych pięciu pól zawiera tylko liczby, ale można je pozostawić jako *, aby wskazać, że każda wartość jest akceptowalna).


Teraz, gdy widzieliśmy już strukturę, powinniśmy spróbować uruchomić kilka przykładów:

Edytuj plik crontab:

crontab -e


Spowoduje to uruchomienie domyślnego edytora na pliku crontab (tworząc go w razie potrzeby). Po zapisaniu pliku i wyjściu z edytora, crontab zostanie zainstalowany w systemie, chyba że zawiera błędy.

Domyślnym edytorem jest nano

Wpisz następujący tekst:

0 * * * * /bin/ls > /var/log/ls.log


Po zapisaniu pliku i wyjściu z edytora pojawi się komunikat :

crontab: instalowanie nowego crontab


Możesz sprawdzić, czy plik zawiera to, czego oczekujesz:

crontab -l


Tutaj powiedzieliśmy Cronowi, aby uruchamiał polecenie /bin/ls i przekierowywał dane wyjściowe polecenia do pliku /var/log/ls.log za każdym razem, gdy minuta jest równa 0, tj. będzie uruchamiał polecenie co godzinę, co godzinę.

Inne przykłady:

Uruchom polecenie "night" dziesięć minut po północy, każdego dnia

10 0 * * * /bin/night


Uruchamianie komendy "Monday" w każdy poniedziałek o 2 nad ranem

0 2 * * 1 /usr/local/bin/lundi


Jeśli chcesz uruchamiać coś bardzo regularnie, możesz użyć innej składni: zamiast używać samych liczb, możesz użyć zakresów lub zestawów.

Seria liczb wskazuje, że każdy punkt w tym zakresie będzie dostępny, więc jeśli użyjesz następującej linii, uruchomisz polecenie o godzinie 1, 2, 3 i 4:

* 1-4 * * /bin/command


Zestaw jest podobny, składa się z zestawu liczb oddzielonych przecinkami, każdy element na liście zostanie dopasowany. Poprzedni przykład wygląda następująco przy użyciu zestawów:

* 1,2,3,4 * * /bin/command

help.lws.net/a/442
Czy ten artykuł był pomocny?

Tak

Nie

Przeczytano 24 067 razy

Dziękujemy! Zadawaj pytania dotyczące naszej dokumentacji, jeśli potrzebujesz więcej informacji, i pomóż nam ją ulepszyć.

Podobne artykuły

Masz pytanie dotyczące tego artykułu?

Zadaj je zespołowi LWS i społeczności. Odpowiedź zostanie opublikowana po moderacji.

Zadaj pytanie zespołowi LWS i jego społeczności

RODO: Administrator: LWS-Ligne Web Services. Cel: moderacja i publiczna publikacja pytania, ewentualne powiadomienie o odpowiedzi. Podstawa prawna: zgoda (art. 6 ust. 1 lit. a RODO). Przechowywanie adresów e-mail: 90 dni po powiadomieniu, maksymalnie 12 miesięcy bez odpowiedzi. Aby skorzystać ze swoich praw, zobacz sekcję RODO naszego regulaminu.