crontab

Cron Jobs Kompletny samouczek dla początkujących

Cron Jobs Kompletny samouczek dla początkujących
Cron to najbardziej przydatne narzędzie w systemie operacyjnym Linux lub UNIX, które umożliwia uruchamianie poleceń lub skryptów zgodnie z określonym harmonogramem bez interwencji użytkownika. Zaplanowane polecenia i skrypty są również nazywane zadaniami cron. Jest używany 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 operacyjnym Windows.

W tym samouczku przedstawimy podstawowe wprowadzenie wszystkiego, co musisz zrozumieć, aby zaplanować pracę z cron. Obejmuje to podstawową składnię crona, edycję pliku crontab, planowanie zadania za pomocą crona z kilkoma przykładami, wyświetlanie zadania crona itp.

Podstawy Cron Job

Rozumiemy podstawy pracy crona.

Co to jest Crond?

Crond to demon w systemie Linux, który działa w tle i co minutę sprawdza, czy w tym czasie jest zaplanowane jakieś zadanie. Jeśli tak, wykonuje tę pracę, w przeciwnym razie pozostaje nieaktywny.

Składnia zadania Crona

Składnia zadania cron jest następująca:

* * * * * polecenie/skrypt

Z lewej:

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. Myślnik (-): Do sokreślić zakres wartości
  3. Przecinek (,): Aby określić listę wartości
  4. Separator (/): Aby określić wartość kroku

Edycja pliku Crontab

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

Zadania cron systemu

Ogólnosystemowe zadania cron znajdują się w in /etc/crontab plik i /etc/cron.re katalogu i są przeglądane /etc/cron.cogodzinny, /etc/cron.codziennie, /etc/cron.tygodniowo i /etc/cron.miesięczny. Tylko administrator systemu ma 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 zadania w /etc/crontab plik:

# min godz dzień miesiąca miesiąc dzień tygodnia nazwa użytkownika polecenie
* * * * * user1 ifconfig

Zadania cron specyficzne dla użytkownika

Zadania cron specyficzne dla użytkownika znajdują się w /var/spool/cron/crontabs informator. Chociaż możesz edytować te zadania ręcznie, zaleca się ich edycję za pomocą polecenia crontab -ee.

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 „testowy”, uruchomienie polecenia crontab -e spowoduje edycję pliku crontab dla użytkownika „testowego”. Podobnie, jeśli jesteś zalogowany jako użytkownik root, polecenie crontab -e spowoduje edycję pliku crontab dla użytkownika root.

Wydaj poniższe polecenie w Terminalu, aby edytować plik crontab dla dowolnego 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”, polecenie będzie wyglądać tak:

$ sudo crontab -u test2 -e

Oto składnia zadania cron, które można dodać w pliku crontab:

# m h dzień miesiąca miesiąc dzień tygodnia polecenie
* * * * * ifconfig

Możesz zobaczyć w zadaniach specyficznych dla użytkownika, że ​​nie ma wpisanej nazwy użytkownikauser.

Polecenia Crontab

Polecenie crontab służy do edycji, wyświetlania 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ć monit przed usunięciem pliku crontab bieżącego użytkownika

Planowanie pracy z Cron

Za pomocą Crona możesz uruchomić zadanie o określonej godzinie, dacie i odstępach czasu z minimalną jednostką w minutach, i.mi., możesz uruchomić zadanie co minutę.

Aby zaplanować zadanie za pomocą crona, otwórz plik crontab przy użyciu metody omówionej w poprzedniej sekcji. Po otwarciu pliku crontab zostaniesz poproszony o wybranie edytora tekstu. Wpisz numer, aby wybrać preferowany edytor tekstu. Przewiń w dół do dołu pliku i dodaj zadania w składni opisanej powyżej. Każda linia 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 ma zostać uruchomione.

Przykład:

Poniższy wiersz w pliku crontab zaplanuje zadanie cron tak, aby uruchamiało polecenie/skrypt co 30 minut po 5 godzinach w każdy dzień tygodnia od poniedziałku do soboty.

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

Minuty

W tym polu podajemy minuty, w których chcemy wykonać polecenie. Jest określony od 0 do 59. * w tym polu oznacza uruchamianie zadania co minutę. W powyższym wierszu crontab, */30 mówi zadaniu cron, aby uruchamiało określone polecenie/skrypt co 30 minut.

godziny

W tym polu podajemy godziny, w których chcemy wykonać polecenie. Jest określony od 0 do 23. * w tym polu oznacza uruchamianie zadania co godzinę. W powyższym wierszu crontab wartość 5 mówi cronowi, że ma uruchamiać określone polecenie/skrypt co pięć godzin.

Dzień miesiąca

W tym polu podajemy konkretne dni miesięcy, w których chcemy wykonać polecenie. Jest określony od 1 do 31. * w tym polu oznacza każdy dzień. W powyższym wierszu crontab znak * mówi cronowi, aby codziennie uruchamiał określone polecenie/skrypt.

Miesiąc roku

W tym polu podajemy, w jakich miesiącach chcemy wykonać polecenie. Jest określony od 1 do 12. * w tym polu oznacza co miesiąc. W powyższym wierszu crontab znak * mówi cronowi, aby co miesiąc uruchamiał określone polecenie/skrypt.

Dzień tygodnia

W tym polu podajemy konkretne dni tygodnia, w które chcemy wykonać polecenie. Jest określony od 0 do 6 od niedzieli do soboty (0 dla niedzieli i 6 dla soboty). * w tym polu oznacza każdy dzień tygodnia. W powyższym wierszu crontab znak * mówi cronowi, aby codziennie uruchamiał określone polecenie/skrypt.

Przykłady zadań Cron

Oto kilka przykładów zadań crona:

Uruchamiaj zadanie cron co 15 minut

Aby zaplanować uruchamianie zadania cron co 15 minut, dodaj poniższy wiersz w pliku crontab:

*/15 * * * * polecenie/skrypt

Uruchamiaj crona codziennie o 5 rano am

Aby zaplanować uruchamianie zadania cron codziennie o 5 rano, dodaj poniższą linię w pliku crontab:

0 5 * * * polecenie/skrypt

Uruchamiaj zadanie crona codziennie o 17:00

Aby zaplanować uruchamianie zadania cron o godzinie 17:00 każdego dnia, dodaj poniższy wiersz w pliku crontab:

0 17 * * * polecenie/skrypt

Uruchom zadanie cron o 9 rano pierwszego dnia każdego miesiąca

Aby zaplanować uruchomienie zadania cron o godzinie 9 rano pierwszego dnia każdego miesiąca, dodaj poniższy wiersz w pliku crontab:

0 9 1 * * polecenie/skrypt

Uruchamiaj zadanie cron co godzinę co 15 marca

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

0 * 15 3 * polecenie/skrypt

Uruchamiaj zadanie cron co 5 godzin

Aby zaplanować zadanie cron co 5 godzin, dodaj poniższy wiersz w pliku crontab:

0 */5 * * * polecenie/skrypt

Uruchamiaj zadanie cron co 15 minut

Aby zaplanować uruchamianie zadania cron co 15 minut, dodaj poniższy wiersz w pliku crontab:

*/15 * * * *

Korzystanie z ciągów

Następujące ciągi mogą być również użyte do zdefiniowania zadania:

  1. @cogodzinny: Aby wykonać zadanie raz na godzinę, i.mi., “0 * * * *
  2. @północ: Aby wykonać zadanie raz dziennie, i.mi., “0 0 * * *
  3. @codziennie: tak samo jak o północy
  4. @tygodniowo: Aby wykonać pracę raz w tygodniu, i.mi., “0 0 * * 0
  5. @miesięczny: Aby wykonać pracę raz w miesiącu, i.mi., “0 0 1 * *
  6. @rocznie: Aby wykonać pracę raz w roku, i.mi., “0 0 1 1 *
  7. @rocznie: tak samo jak @corocznie
  8. @restart: Aby wykonać zadanie raz przy każdym uruchomieniu

Na przykład, aby co tydzień uruchamiać skrypt lub polecenie, wpis w pliku crontab będzie wyglądał następująco:

@tygodniowe polecenie/skrypt

Predefiniowane katalogi Cron

W systemie Linux istnieje kilka predefiniowanych katalogów cron, w których przechowywane skrypty są wykonywane automatycznie. Jeśli umieścimy jakiś skrypt w tych katalogach, zostanie on automatycznie wykonany w skonfigurowanym czasie.

  • /etc/cron.codziennie
  • /etc/cron.cogodzinny
  • /etc/cron.miesięczny
  • /etc/cron.tygodniowo

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

Zobacz oferty pracy Cron

Wyświetl zadania dla bieżącego użytkownika

Użyj następującego polecenia, aby wyświetlić wszystkie zaplanowane zadania cron dla bieżącego 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:

$ kot /etc/crontab

Musisz być zalogowany jako użytkownik root lub uruchomić polecenie jako sudo.

Zobacz oferty pracy 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 z rzeczywistą nazwą użytkownika:

$ sudo crontab -u -ja

Aby uruchomić to polecenie, potrzebujesz uprawnień sudo.

Zobacz godzinowe zadania crona

Aby wyświetlić wszystkie zadania cron, które są skonfigurowane do uruchamiania co godzinę, wydaj następujące polecenie w Terminalu:

$ ls -la /etc/cron.cogodzinny

Zobacz codzienne zadania crona

Aby wyświetlić wszystkie zadania cron, które są skonfigurowane do codziennego uruchamiania, wydaj następujące polecenie w Terminalu:

$ ls -la /etc/cron.codziennie/

Zobacz cotygodniowe zadania crona

Aby wyświetlić wszystkie zadania cron, które są skonfigurowane do uruchamiania co tydzień, wydaj następujące polecenie w Terminalu:

$ ls -la /etc/cron.tygodniowo/

Zobacz miesięczne zadania crona

Aby wyświetlić wszystkie zadania cron, które są skonfigurowane do uruchamiania co miesiąc, wydaj następujące polecenie w Terminalu:

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

Kopia zapasowa wszystkich zadań Cron

Zaleca się przechowywanie kopii zapasowej wszystkich zadań cron w pliku, aby można było je odzyskać w przypadku usunięcia. Aby wykonać kopię zapasową wszystkich bieżących zadań, użyj operatora przekierowania, aby przekierować wyjście 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 Crona

Możemy ograniczyć dostęp do polecenia crontab poprzez dwa pliki: / etc/cron.allow i / etc/cron.zaprzeczać.

  • /etc/cron.dopuszczać - Dodaj użytkowników (po jednym w wierszu), którym chcesz zezwolić na dostęp do poleceń crontab. Ci użytkownicy mogą uruchamiać zaplanowane zadania.
  • /etc/cron.zaprzeczać - Dodaj użytkowników (po jednym w wierszu), którym chcesz odmówić dostępu do poleceń crontab. Ci użytkownicy nie mogą uruchamiać zaplanowanych zadań.

Generatory składni Crontab

Istnieje kilka stron internetowych, które umożliwiają generowanie składni dla crontab. Te strony internetowe ułatwiają generowanie wyrażeń crontab bez konieczności pamiętania składni. Chociaż dostępne są różne strony internetowe dla generatorów składni, takich jak crontabgenerator.com, crontab-generator.org i cronmaker.com. Ten, który najbardziej wolę i okazał się pomocny, to crontab.guru. Na podstawie danych wprowadzonych przez użytkownika generuje wyrażenie crontab, które można skopiować i wkleić do pliku crontab.

Wniosek

W tym samouczku wyjaśniliśmy podstawy zadań cron, jego składnię i sposób konfiguracji. Omówiliśmy również, jak przeglądać zadania cron, tworzyć kopie zapasowe i usuwać je, jeśli nie są już potrzebne.

AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...
Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...