logo

„crontab” w systemie Linux z przykładami

The crontab to lista poleceń, które chcesz uruchamiać regularnie, a także nazwa polecenia używanego do zarządzania tą listą. Crontab oznacza tabelę cron, ponieważ używa cron harmonogramu zadań do wykonywania zadań; cron nazwa sama w sobie pochodzi od chronos, greckiego słowa oznaczającego czas. cron to proces systemowy, który automatycznie wykona za Ciebie zadania według ustalonego harmonogramu. Harmonogram nazywa się crontab i jest to również nazwa programu używanego do edycji tego harmonogramu.

Składnia Crontab w systemie Linux

Format Crontab w systemie Linux jest reprezentowany przez następującą składnię:



MIN HOUR DOM MON DOW   CMD>

Podzielmy każde pole:

Pole

Opis



Dozwolona wartość

MIN (minuta)

Określa minutę, w której polecenie zostanie uruchomione



Mieści się w przedziale od 0 do 59.

GODZINA

Oznacza godzinę dnia, w której zaplanowane jest wykonanie polecenia.

Obejmuje wartości od 0 do 23.

DOM (dzień miesiąca)

Określa dzień miesiąca dla zadania.

Mieści się w przedziale od 1 do 31.

PON (miesiąc)

Wskazuje miesiąc, w którym polecenie zostanie wykonane.

Waha się od 1 do 12.

DOW (dzień tygodnia)

Określa dzień tygodnia dla zadania.

Jest reprezentowany przez liczby od 0 do 6, gdzie zarówno 0, jak i 6 odpowiadają niedzieli.

CMD (polecenie)

Reprezentuje rzeczywiste polecenie lub skrypt, który zostanie uruchomiony w zaplanowanym czasie.

—————–

Przykłady zadań Cron

1. Planowanie pracy na określony czas

Podstawowym zastosowaniem cron jest wykonanie zadania w określonym czasie, jak pokazano poniżej. Spowoduje to wykonanie skryptu powłoki pełnej kopii zapasowej (pełna kopia zapasowa) 10 czerwca o godzinie 08:30. Pole czasu wykorzystuje format 24-godzinny. Zatem dla 8:00 użyj 8, a dla 20:00 użyj 20.

30 08 10 06 * /home/maverick/full-backup>

30 – 30 minuta 08 – 08 rano 10 – 10 dzień 06 – 6 miesiąc (czerwiec) * – Każdy dzień tygodnia

2. Aby wyświetlić wpisy Crontab

  • Wyświetl wpisy Crontab bieżącego zalogowanego użytkownika: Aby wyświetlić wpisy Crontab, wpisz crontab -l na swoim koncie uniksowym.
  • Wyświetl wpisy Root Crontab: Zaloguj się jako użytkownik root (su – root) i wykonaj crontab -l.
  • Aby wyświetlić wpisy crontab innych użytkowników Linuksa: Zaloguj się do roota i użyj -u {nazwa użytkownika} -l.

3. Aby edytować wpisy Crontab Edytuj wpisy Crontab bieżącego zalogowanego użytkownika.

Aby edytować wpisy crontab, użyj crontab -e. Domyślnie spowoduje to edycję tabeli crontab aktualnie zalogowanych użytkowników.

4. Aby zaplanować zadanie na każdą minutę za pomocą Cron.

W idealnym przypadku nie byłoby konieczności planowania zadania co minutę. Ale zrozumienie tego przykładu pomoże ci zrozumieć inne przykłady.

* * * * * CMD>

Znak * oznacza całą możliwą jednostkę — tj. każdą minutę i każdą godzinę przez cały rok. Bardziej niż bezpośrednie użycie tego *, okaże się ono bardzo przydatne w następujących przypadkach. Jeśli podasz */5 w polu minut, oznacza to co 5 minut. Jeśli określisz 0-10/2 w polu minut, oznacza to co 2 minuty w ciągu pierwszych 10 minut. Zatem powyższą konwencję można zastosować dla wszystkich pozostałych 4 pól.

5. Aby zaplanować zadanie na więcej niż jeden raz (np. dwa razy dziennie)

Poniższy skrypt wykonuje przyrostową kopię zapasową dwa razy dziennie, każdego dnia. W tym przykładzie wykonywany jest określony skrypt powłoki przyrostowej kopii zapasowej (przyrostowa kopia zapasowa) codziennie o godzinie 11:00 i 16:00. Wartość oddzielona przecinkami w polu określa, że ​​polecenie musi zostać wykonane przez cały podany czas.

00 11, 16 * * * /home/maverick/bin/incremental-backup>

00 – 0 minuta (na górze godziny) 11, 16 – 11:00 i 16:00 * – Codziennie * – Co miesiąc * – Każdy dzień tygodnia

6. Aby zaplanować zadanie na określony zakres czasu (np. Tylko w dni powszednie)

Jeśli chcesz, aby zadanie było zaplanowane na każdą godzinę w określonym przedziale czasu, użyj poniższych opcji.

  • Cron Job codziennie w godzinach pracy: Ten przykład sprawdza stan bazy danych codziennie (w tym w weekendy) w godzinach pracy od 9:00 do 18:00
00 09-18 * * * /home/maverick/bin/check-db-status>
  • 00 – 0 minuta (na górze godziny) 09-18 – 9:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00 * – Codziennie * – Codziennie miesiąc * – Każdy dzień tygodnia
  • Cron Job w każdy dzień powszedni w godzinach pracy: Ten przykład sprawdza stan bazy danych w każdy dzień powszedni (tj. z wyłączeniem sobót i niedziel) w godzinach pracy od 9:00 do 18:00.
00 09-18 * * 1-5 /home/maverick/bin/check-db-status>
  • 00 – 0 minuta (na górze godziny) 09-18 – 9:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00 * – Codziennie * – Codziennie miesiąc 1-5 - poniedziałek, wtorek, środa, czwartek i piątek (w każdy dzień powszedni)

7. Aby zaplanować zadanie Cron w tle na każde 10 minut.

Jeśli chcesz sprawdzać ilość miejsca na dysku co 10 minut, użyj poniższego polecenia.

sesja wygasła
*/10 * * * * /home/maverick/check-disk-space>

Wykonuje określone polecenie check-disk-space co 10 minut przez cały rok. Ale może być wymagane wykonanie polecenia tylko w określonych godzinach i odwrotnie. Powyższe przykłady pokazują, jak to zrobić. Zamiast podawać wartości w 5 polach, możemy je określić za pomocą jednego słowa kluczowego, jak wspomniano poniżej. Istnieją szczególne przypadki, w których zamiast powyższych 5 pól można użyć znaku @, po którym następuje słowo kluczowe — np. ponowne uruchomienie, północ, co rok, co godzinę. Specjalne słowa kluczowe Cron i ich znaczenie

Keyword Equivalent @yearly 0 0 1 1 * @daily 0 0 * * * @hourly 0 * * * * @reboot Run at startup.>

8. Aby zaplanować zadanie na pierwszą minutę każdego roku, użyj @yearly

Jeśli chcesz, aby zadanie było wykonywane w pierwszej minucie każdego roku, możesz użyć słowa kluczowego @yearly cron, jak pokazano poniżej. Spowoduje to wykonanie corocznej konserwacji systemu przy użyciu skryptu powłoki rocznej konserwacji o godzinie 00:00 1 stycznia dla każdego roku.

@yearly /home/maverick/bin/annual-maintenance>

9. Aby zaplanować zadanie Cron na początek każdego miesiąca, użyj @monthly

Jest tak samo podobny jak @yearly jak powyżej. Ale wykonuje polecenie raz w miesiącu, używając słowa kluczowego @monthly cron. Spowoduje to wykonanie kopii zapasowej skryptu powłoki na taśmie o godzinie 00:00 pierwszego dnia każdego miesiąca.

@monthly /home/maverick/bin/tape-backup>

10. Aby zaplanować codzienne zadanie w tle, użyj @daily

Użycie słowa kluczowego @daily cron spowoduje codzienne czyszczenie pliku dziennika przy użyciu skryptu powłoki cleanup-logs o godzinie 00:00 każdego dnia.

@daily /home/maverick/bin/cleanup-logs 'day started'>

11. Aby wykonać polecenie systemu Linux po każdym ponownym uruchomieniu komputera, użyj @reboot

Użycie słowa kluczowego @reboot cron spowoduje wykonanie określonego polecenia raz po każdym uruchomieniu komputera.

@reboot CMD>