Tutorial Cron Jobs Complete Początek

Tutorial Cron Jobs Complete Początek
Cron jest najbardziej przydatnym narzędziem w systemie operacyjnym Linux lub Unika, który umożliwia uruchamianie poleceń lub skryptów w danym harmonogramie bez interwencji użytkownika. Zaplanowane polecenia i skrypty są również nazwane CRON Jobs. Służy głównie do automatyzacji powtarzających się zadań, takich jak uruchamianie zaplanowanych kopii zapasowych, czyszczenie plików tymczasowych, konserwacja systemu i różne inne powtarzające się zadania. Jest podobny do harmonogramu zadań w systemie Windows.

W tym samouczku zapewnimy podstawowe wprowadzenie wszystkiego, co musisz zrozumieć do planowania pracy z Cron. Obejmuje to podstawową składnię CRON, edytowanie pliku crontab, zaplanuj pracę z Cron z kilkoma przykładami, wyświetl zadanie CRON itp.

Podstawy pracy Cron

Zrozumiemy niektóre podstawy pracy Cron.

Co to jest Crond?

Crond to demon w systemie Linux, który działa w tle i sprawdza co minutę, aby sprawdzić, czy w tym czasie zaplanowano jakieś zadanie. Jeśli tak, wykonuje to zadanie, w przeciwnym razie pozostaje nieaktywna.

Składnia pracy Cron

Składnia pracy Cron jest następująca:

* * * * * polecenie/skrypt

Z lewej:

  • Pierwszy * odpowiada minutom (0-59)
  • Drugi * odpowiada godzinom (0-23)
  • Trzeci * odpowiada Dniu miesiąca (1-31)
  • Czwarty * odpowiada miesiącu roku (1-12)
  • Piąty * odpowiada Day of the Week (0-6, od niedzieli do soboty)

Aby określić wiele wartości w polu, użyj następujących symboli operatora:

  1. Gwiazdka (*): Aby określić wszystkie możliwe wartości dla pola
  2. Kropla (-): Do Ssprzyjaj zakres wartości
  3. Przecinek (,): Aby określić listę wartości
  4. Separator (/): Aby określić wartość krokową

Edycja pliku crontab

Crontab to plik, który zawiera zaplanowane zadania w określonej składni. Istnieją dwa rodzaje plików crontab; Jeden dla zadań CRON specyficznych dla systemu, a drugi dla zadań CRON specyficznych dla użytkownika.

System Cron Jobs

Praca CRON obejmuje całe system /etc/crontab plik i /etc/cron.D katalog i przechodzą one /etc/cron.cogodzinny, /etc/cron.codziennie, /etc/cron.co tydzień I /etc/cron.miesięczny. Tylko administrator systemu może uzyskać dostęp do tych plików.

Administrator systemu może zdefiniować zadanie CRON za pomocą następującego polecenia:

$ nano /etc /crontab

Oto składnia pracy w /etc/crontab plik:

# min Hr Dayofonth miesiąc DayofWeek Dowództwo nazwy użytkownika
* * * * * użytkownik1 ifconfig

Zadania CRON specyficzne dla użytkownika

Zadania CRON specyficzne dla użytkownika znajdują się w /var/szpula/cron/crontabs informator. Chociaż możesz edytować te zadania ręcznie, zaleca się edytowanie tych zadań za pomocą polecenia crontab -e.

Standardowy użytkownik może zdefiniować zadanie CRON za pomocą następującego polecenia:

$ crontab -e

Na przykład, jeśli jesteś zalogowany jako użytkownik „testu”, uruchomienie polecenia crontab -e będzie edytować plik crontab dla użytkownika „test”. Podobnie, jeśli jesteś zalogowany jako użytkownik root, polecenie crontab -e będzie edytować plik crontab dla użytkownika root.

Wydaj poniższe polecenie w terminalu, aby edytować plik crontab dla każdego innego użytkownika:

$ sudo crontab -u -mi

Na przykład, jeśli jesteś zalogowany jako użytkownik „test1” i chcesz edytować plik crontab dla użytkownika „test2”, poleceniem byłoby:

$ sudo crontab -u test2 -e

Oto składnia zadania CRON, którą można dodać w pliku crontab:

# M H Dayofonth miesiąc Dayofweek Command
* * * * * ifconfig

Możesz zobaczyć w zadaniach specyficznych dla użytkownika, że ​​nie ma złożonej „nazwy użytkownika”.

Polecenia crontab

Polecenie Crontab służy do edytowania, listy i usuwania zadań CRON:

  • crontab -e Aby edytować plik crontab bieżącego użytkownika
  • crontab -l Aby wyświetlić zawartość pliku crontab
  • crontab -u [nazwa użytkownika] Aby edytować plik crontab dowolnego innego użytkownika
  • crontab -r Aby usunąć plik crontab bieżącego użytkownika
  • crontab -i Aby wyświetlić wiersz przed usunięciem pliku Crontab bieżącego użytkownika

Planowanie pracy z Cron

Z Cronem możesz uruchomić pracę w określonej godzinie, datę i odstępie czasu z minimalną jednostką w kilka minut, i.mi., Możesz prowadzić pracę co minutę.

Aby zaplanować pracę w Cron, otwórz plik crontab za pomocą metody omówionej w poprzednim rozdziale. Po otwarciu pliku crontab zostaniesz poproszony o wybranie edytora tekstu. Wpisz numer, aby wybrać preferowany edytor tekstu. Przewiń w dół do dolnej części pliku i dodaj zadania w składni opisanej powyżej. Każdy wiersz w pliku określa jedno polecenie. Pierwsze pięć wpisów w wierszu określa zaplanowany czas, a ostatni wpis określa, które polecenie lub skrypt powinien uruchomić.

Przykład:

Poniższy wiersz w pliku crontab zaplanuje zadanie CRON, aby uruchomić polecenie/skrypt co 30 minuty po 5 godzinach każdego dnia tygodnia od poniedziałku do soboty.

*/30 5 * * 1-6 polecenie/skrypt

Minuty

W tym polu określamy minuty, gdy chcemy, aby polecenie zostało wykonane. Jest określony od 0 do 59. * W tej dziedzinie oznacza prowadzenie pracy co minutę. W powyższej linii crontab */30 mówi zadaniu CRON, aby uruchamiał określone polecenie/skrypt co 30 minut.

godziny

W tym polu określamy godziny, w których chcemy, aby polecenie zostało wykonane. Jest określony od 0 do 23. * W tej dziedzinie oznacza prowadzenie pracy co godzinę. W powyższej linii crontab wartość 5 mówi zadaniu Cron, aby uruchamiał określone polecenie/skrypt co pięć godzin.

Dzień miesiąca

W tym polu określamy określone dni miesięcy, kiedy chcemy, aby polecenie zostało wykonane. Jest to określone od 1 do 31. * W tej dziedzinie oznacza codziennie. W powyższej linii crontab * każe zadanie Cron, aby codziennie uruchamiać określone polecenie/skrypt.

Miesiąc roku

W tym polu określamy określone miesiące, w których chcemy wykonać polecenie. Jest określony od 1 do 12. * W tej dziedzinie oznacza co miesiąc. W powyższej linii crontab * mówi CRONowi, aby co miesiąc uruchamiał określone polecenie/skrypt.

Dzień tygodnia

W tym polu określamy określone dni tygodnia, kiedy chcemy wykonać polecenie. Jest to określone od 0 do 6 od niedzieli do soboty (0 na niedzielę i 6 na sobotę). * W tej dziedzinie oznacza codziennie w tygodniu. W powyższej linii crontab * mówi CRONowi, aby codziennie uruchomić określone polecenie/skrypt.

Przykłady pracy CRON

Oto kilka przykładów pracy CRON:

Uruchom pracę cron co 15 minut

Aby zaplanować zadanie CRON do uruchomienia co 15 minut, dodaj poniższą linię w pliku crontab:

*/15 * * * * polecenie/skrypt

Prowadzić pracę cron o 5 rano każdego dnia

Aby zaplanować zadanie CRON, aby uruchomić o 5 rano każdego dnia, dodaj poniższą linię w pliku crontab:

0 5 * * * polecenie/skrypt

Prowadzić pracę Cron o 17:00 każdego dnia

Aby zaplanować zadanie CRON, aby uruchomić o 17:00 każdego dnia, dodaj poniższą linię w pliku crontab:

0 17 * * * polecenie/skrypt

Prowadzić pracę Cron o 9 rano pierwszego dnia każdego miesiąca

Aby zaplanować zadanie CRON, aby uruchomić o 9 rano pierwszego dnia każdego miesiąca, dodaj poniższą linię w pliku crontab:

0 9 1 * * polecenie/skrypt

Prowadzić pracę cron co godzinę co 15 marca

Aby zaplanować pracę CRON co godzinę każdego 15 marca, dodaj poniższą linię w pliku crontab:

0 * 15 3 * Polecenie/skrypt

Prowadzić pracę CRON co 5 godzin

Aby zaplanować pracę CRON co 5 godzin, dodaj poniższą linię w pliku crontab:

0 */5 * * * polecenie/skrypt

Uruchom pracę cron co 15 minut

Aby zaplanować zadanie CRON do uruchomienia co 15 minut, dodaj poniższą linię w pliku crontab:

*/15 * * * *

Za pomocą strun

Do zdefiniowania zadania można również użyć następujących strun:

  1. @cogodzinny: Aby wykonać pracę raz na godzinę, ja.mi., "0 * * * *"
  2. @północ: Wykonanie pracy raz dziennie, ja.mi., "0 0 * * *"
  3. @codziennie: Tak samo jak północ
  4. @co tydzień: Aby wykonać pracę raz w tygodniu, ja.mi., "0 0 * * 0"
  5. @miesięczny: Aby wykonać pracę raz w miesiącu, ja.mi., "0 0 1 * *"
  6. @rocznie: Wykonanie pracy raz w roku, ja.mi., "0 0 1 1 *"
  7. @rocznie: Tak samo jak @Anly
  8. @ponowne uruchomienie: Wykonać zadanie raz przy każdym startupu

Na przykład, aby uruchomić skrypt lub polecenie co tydzień, wpis w pliku crontab byłby:

@Weekly Command/Script

Zdefiniowane katalogi CRON

Istnieje kilka wstępnie zdefiniowanych katalogów CRON w Linux, w których przechowywane skrypty są automatycznie wykonywane. Jeśli umieścimy jakikolwiek skrypt w tych katalogach, zostanie on automatycznie wykonany w skonfigurowanym czasie.

  • /etc/cron.codziennie
  • /etc/cron.cogodzinny
  • /etc/cron.miesięczny
  • /etc/cron.co tydzień

Na przykład, aby wykonać skrypt raz na miesiąc, musisz umieścić go w /etc /cron.miesięczny.

Zobacz Cron Jobs

Wyświetl zadania dla obecnego użytkownika

Użyj następującego polecenia, aby wyświetlić wszystkie zaplanowane zadania CRON dla obecnego użytkownika:

$ crontab -l

Wyświetl zadania dla użytkowników root

Aby wyświetlić wszystkie zaplanowane zadania użytkownika root, wydaj następujące polecenie w terminalu:

$ cat /etc /crontab

Musisz zalogować się jako użytkownik root lub uruchomić polecenie jako sudo.

Wyświetl zadania dla innych użytkowników

Aby wyświetlić wszystkie zaplanowane zadania określonego użytkownika, wydaj następujące polecenie w terminalu zastępując rzeczywistą nazwę użytkownika:

$ sudo crontab -u -L

Aby uruchomić to polecenie, będziesz potrzebować przywilejów sudo.

Zobacz godzinowe prace Cron

Aby wyświetlić wszystkie zadania CRON skonfigurowane do działania co godzinę, wydaj następujące polecenie w terminalu:

$ ls -la /etc /cron.cogodzinny

Zobacz codzienne prace CRON

Aby wyświetlić wszystkie zadania CRON skonfigurowane do codziennego uruchamiania, wydaj następujące polecenie w terminalu:

$ ls -la /etc /cron.codziennie/

Zobacz cotygodniowe prace CRON

Aby wyświetlić wszystkie zadania CRON skonfigurowane do uruchamiania co tydzień, wydaj następujące polecenie w terminalu:

$ ls -la /etc /cron.co tydzień/

Wyświetl miesięczne prace CRON

Aby wyświetlić wszystkie zadania CRON skonfigurowane do uruchamiania co miesiąc, wydać następujące polecenie w terminalu:

$ ls -la /etc /cron.miesięczny/

Kopie zapasowe wszystkich prac CRON

Zaleca się prowadzenie kopii zapasowej wszystkich zadań CRON w pliku, abyś mógł odzyskać w przypadku usunięcia. Aby wykonać kopię zapasową wszystkich bieżących zadań, użyj operatora przekierowania, aby przekierować dane wyjściowe crontab -l do pliku.

$ crontab -l> backup_cron.tekst

Usuwanie wszystkich zaplanowanych zadań CRON

Aby usunąć wszystkie zaplanowane zadania CRON, użyj flagi -R w następujący sposób:

$ crontab -r

Zezwolenie na cron

Możemy ograniczyć polecenie dostępu do Crontab za pomocą dwóch plików: / itp./Cron.Zezwalaj i / etc / cron.zaprzeczyć.

  • /etc/cron.umożliwić - Dodaj użytkowników (jeden na wiersz), których chcesz umożliwić dostęp do poleceń crontab. Ci użytkownicy mogą uruchamiać harmonogram zadań.
  • /etc/cron.zaprzeczyć - Dodaj użytkowników (jeden na wiersz), których chcesz odmówić dostępu do poleceń crontab. Ci użytkownicy nie mogą uruchomić zaplanowanych zadań.

Generatory składni crontab

Istnieje kilka stron internetowych, które umożliwiają generowanie składni dla crontabs. Te strony internetowe ułatwiają generowanie wyrażenia crontab bez konieczności zapamiętywania składni. Chociaż istnieją różne strony internetowe dla generatorów składniowych, takich jak crontabgenerator.com, crontab-generator.org i cronmaker.com. Ten, który w większości wolę i uważam, że jest pomocny, jest crontab.Guru. W oparciu o dane wejściowe użytkownika generuje wyrażenie crontab, które można kopiować w pliku crontab.

Wniosek

W tym samouczku wyjaśniliśmy podstawy pracy Cron, jego składnię i sposób jej ustawienia. Omówiliśmy również, jak oglądać zadania CRON, tworzyć kopię zapasową i usuwając je, jeśli już nie jest potrzebne.