Crontab i przykłady. Cron - uruchamia programy użytkownika o określonej godzinie

(Zadania zaplanowane) służy do skonfigurowania wykonywania poleceń według harmonogramu lub w ściśle wyznaczonym czasie. Używając CronTab Możesz ustawić konkretną godzinę, a określone polecenie zostanie wykonane dokładnie o tej godzinie. Skonfiguruj CronTab jest to możliwe w ten sposób, że zadanie będzie wykonywane jednorazowo miesiąc, dzień, godzina I każda minuta lub, na przykład, co 10 minut. Można też łączyć, np. trzeba wykonywać zadanie raz na godzinę przez pierwsze 2 godziny, a następnie nie wykonywać go przez kolejne 2 godziny.

Jednym z udogodnień jest także możliwość przesyłania wyników realizacji zadań drogą mailową. Aby to zrobić, kliknij odpowiedni napis i podaj swój adres e-mail.

Mistrz zadań

Pierwsza znajomość Cron dla nas zaczyna się od odkrycia Mistrzowie zadań. Za pomocą kreatora możesz skonfigurować czas wykonywania skryptów bez poważnej wiedzy administracyjnej, po prostu wybierając konkretną kombinację z list rozwijanych. Musisz także podać ścieżkę do skryptu lub polecenia, w którym zostanie wykonany Cron.

Zobaczmy przykład uruchomienia skryptu napisanego w tym języku PERŁ, który należy uruchomić co 5 minut.

Po kliknięciu przycisku znajdującego się pod głównym oknem Cron Wraz z pierwszą konfiguracją pojawi się nowy wpis. Liczba takich wpisów jest nieograniczona.

Teraz mamy pierwsze zadanie, jakie możemy wykonać włączyć coś/wyłączyć, zmiana Lub usuwać za pomocą przycisków znajdujących się po prawej stronie każdego z zadań:

Włącz/wyłącz zadanie;
- zmienić zadanie;
- usuń zadanie.

Ręczna konfiguracja CronTab.

W tej sekcji znajduje się również ustawienie ręczne, które pozwala skonfigurować czas uruchamiania skryptu w zwykły sposób, dla tych, którzy są zaznajomieni z Cron.

Przedział czasowy

Minuty mogą pochodzić z 0 zanim 59
Godziny mogą być od 0 zanim 23
Dzień miesiąca może pochodzić z 1 zanim 31
Może miesiąc 1 zanim 12
Dzień tygodnia może pochodzić z 0 zanim 7 , gdzie 0 i 7 to niedziela

Można skonfigurować CronTab do wykonywania zadań nie tylko w określonym czasie
czas, ale także każda minuta, cogodzinny, codziennie, co tydzień Lub miesięczny,
za pomocą kombinacji */X

Przykłady

*/5 * * * * - uruchamiaj polecenie co pięć minut
0 */3 * * * - uruchamiane co trzy godziny
0 12-16 * * * - uruchamiaj komendę co godzinę od 12 do 16 (o 12, 13, 14, 15 i 16)
0 12,16,18 * * * - uruchamiaj komendę co godzinę o godzinie 12, 16 i 18

*/1 * * * * /usr/bin/php ~/site.ru/public_html/test.php- uruchamianie skryptu php test.php co minutę
0 */1 * * * /usr/bin/perl ~/site.ru/public_html/test.pl- uruchamianie skryptu perl test.pl co godzinę

Zespół

Musisz ustawić ścieżkę do skryptu z katalogu domowego
Na przykład: public_html/cgi-bin/script.pl
System sam zastąpi symbol ~/ (ta kombinacja zastępuje pełną ścieżkę)
Okaże się: ~/public_html/cgi-bin/script.pl
Jeśli umieścisz symbol na końcu ścieżki & (ampersand), wówczas skrypt będzie działał w tle.
Ustawienie tego symbolu jest opcjonalne.

Wiele słyszałem o tym, że Linux ma przydatny harmonogram zadań cron. Nie miałem jednak potrzeby z niego korzystać i nie chciałem rozumieć jego ustawień… konsola, dużo angielskich liter… to było przerażające. Ale na szczęście moje obawy okazały się daremne – wszystko jest proste aż do podstaw. W artykule przyjrzymy się, jak skonfigurować wykonywanie skryptów zgodnie z harmonogramem, a jako przykład zainstalujemy „kukułkę”.

Najpierw trochę o tym, jak to ogólnie działa.

Po uruchomieniu systemu uruchamia się demon cron. Można nim sterować (stop/start/sprawdź status) za pomocą polecenia: sudo service cron (stop/start/status). Ale rzadko jest to konieczne.

Sam demon cron śpi przez większość czasu i raz na minutę lekko otwiera oko, aby sprawdzić, czy w tym czasie są jakieś zadania. Jeśli nie ma żadnych zadań, ponownie przechodzi w stan hibernacji.

Zadania znajdują się w plikach o nazwach równych nazwom użytkowników, a same pliki znajdują się w folderze /var/spool/cron/crontabs. Folder jest chroniony przed ingerencją z zewnątrz i jest dostępny tylko dla superużytkownika. Jednak każdy użytkownik może skonfigurować harmonogram swoich zadań bez znajomości hasła root (superużytkownika).

Do skonfiguruj crona Dla zwykłego użytkownika wystarczy wpisać:

Jeśli chcesz utworzyć zadanie dla innego użytkownika, uruchom je za pomocą polecenia:

sudo crontab -u użytkownik -e

Zamiast użytkownika wpisz żądanego użytkownika, na przykład root.
Przy pierwszym uruchomieniu pojawi się pytanie o edytor... Lubię nano. Jest prosty i działa bez GUI.


Składnia zadań jest bardzo prosta. Spójrzmy na przykład ze zrzutu ekranu uruchomienia kukułki:

0 */1 * * * /home/zegi/bin/kuku

W zadaniu znajdują się 2 główne pola: 0 */1 * * * - wskazuje czas, w którym polecenie zostanie uruchomione. A /home/zegi/bin/kuku to ścieżka do skryptu opisującego polecenia.

Z adresem do skryptu nie powinno być żadnych problemów (zegi to nazwa użytkownika... nie zapomnij wpisać swojej). Musimy jednak wyjaśnić, jak ustawić czas cron na wykonanie skryptu.

W sumie mamy 5 komórek wejściowych, które są oddzielone spacją.
1 - minuty (cyfry od 0 do 59)
2 - godziny (od 0 do 23)
3 - dzień miesiąca (od 1 do 31)
4 - miesiąc w roku (od 1 do 12... na przykład luty to 2)
5 - dzień tygodnia (od 1 do 7. Tydzień zachodni stosuje się, gdy początkiem jest niedziela tj. niedziela-1, pon-2, wto-3, środa-4, czw-5, piątek-6, sobota - 7).

Każda komórka musi być wypełniona. Jeśli chcesz, aby polecenie było wykonywane co miesiąc, ustaw * w 4. polu. To samo tyczy się pozostałych dziedzin.

Wróćmy do przykładu z kukułką, kiedy skrypt uruchamia się co godzinę. Służy do ustawiania częstotliwości / . Przykładowo, jeśli chcesz, aby zadanie było wykonywane co 5 minut, w poniedziałki, ustaw:

Jeśli chcesz, aby zadanie było wykonywane co godzinę, będziesz musiał ustawić konkretną minutę. Jeśli zostawisz gwiazdkę (* */1 * * *), korona będzie wykonywana co minutę - bo spełnione są warunki: sprawdziło wszystkie 5 komórek i ich wartość odpowiada aktualnemu czasowi (minutom - nie ma to znaczenia Godziny - co godzinę, a nie tylko niektóre).
Ukośnik musi być zawsze poprzedzony gwiazdką. Na przykład przypisanie wykonania co minutę począwszy od 30-tej poprzez wprowadzenie 30/1 nie będzie działać.

Jeśli konieczne jest, aby zadanie było wykonywane nie cyklicznie, ale kilka razy, wówczas wartości są zapisywane oddzielone przecinkami.
Na przykład musisz wykonać zadanie w dni powszednie o 12:00 i 18:00. Wtedy będzie to wyglądać tak:

* 12,18 * * 2,3,4,5,6

Po zakończeniu edycji zadań nie zapomnij zapisać zmian (Ctrl+O > enter), a następnie możesz wyjść (Ctrl+x).

Cron powinien powiadomić o pojawieniu się nowego zadania i jest gotowy do jego wykonania wpisując: „crontab: instalowanie nowego crontaba”.

Możesz przeglądać utworzone zadania (może sam nic nie zrobiłeś, ale administrator sieci coś za Ciebie skonfigurował) za pomocą polecenia:

I na koniec siebie skrypt z kukułką, które kukują co godzinę:

#!/bin/bash
h=`data +%l`
podczas gdy [ $h -gt 0 ]
Do
odtwórz ~/kukushka.wav
h=$[$h-1]
zrobione

Możesz pobrać dźwięk kukułki za pomocą polecenia:

wget http://dl.dropbox.com/u/24844052/tuksik/kukushka.wav

Zabawa jest zawarta w pakiecie sox. W Ubuntu możesz zainstalować go za pomocą polecenia.

W systemie operacyjnym Unix możliwe jest uruchamianie programów użytkownika o określonej przez użytkownika godzinie. W tym celu wykorzystuje się program cron, który otrzymuje instrukcje od użytkowników i zgodnie z nimi wykonuje dowolne zadania zgodnie z otrzymanymi skryptami. Nasi klienci mogą korzystać z tej funkcji w celu wykonywania zadań okresowych.

Jak skonfigurować cron na swoim koncie osobistym (dla taryf unix)

Ponieważ nie wszystkie programy PHP można uruchomić za pośrednictwem interfejsu CLI SAPI bez wcześniejszych modyfikacji, można je uruchomić wget. Na przykład:

/usr/local/bin/wget -O /dev/null -q http://mysite.tld/cron.php?action=123

Jeśli skrypt używa funkcji wymagać, włączać i zawierają ścieżki względne, to na początku wykonywania skryptu użyj wywołania funkcji chdir(), który ustawi bieżący katalog roboczy.

Jak otrzymywać komunikaty o błędach z programów uruchamianych przez cron

Jeśli napotkasz błędy podczas wykonywania programu uruchamianego z cron, prawdopodobnie będziesz chciał otrzymywać komunikaty o błędach, aby móc w pełni monitorować wydajność okresowo uruchomionych zadań. Aby to zrobić, umieść następujący wiersz na początku skryptu cron:

[email protected]

Z pewnością, [email protected] musisz zastąpić go prawdziwym adresem e-mail, na który będą dostarczane powiadomienia. Jeśli chcesz otrzymywać komunikaty o błędach na kilka adresów, podaj wszystkie te adresy oddzielone przecinkami.

Pamiętaj, że cron wyśle ​​pocztą wyniki działania uruchomionych skryptów. Na przykład, jeśli napiszesz skrypt, który wypisuje wiersz „Hello, world” i uruchamiasz go przez cron, otrzymasz wiadomość e-mail z wierszem „Hello, world” za każdym razem, gdy cron uruchomi taki skrypt.

Aby tego uniknąć, na przykład, gdy nie potrzebujesz tekstu generowanego przez skrypt, musisz dodać te znaki

> /dev/null 2>&1

Kompletna linia dla cron będzie wyglądać następująco:

0 1 * * * /usr/local/bin/php -q $HOME/script.php > /dev/null 2>&1

Zalecamy sprawdzenie poprawnej składni skryptów ustawionych do uruchamiania przez cron. Skrypty mogą zawierać błąd, mogą nie działać tak samo, gdy są uruchamiane przez serwer WWW i przez cron, i tak dalej. Aby mieć pewność, że skrypt będzie działał poprawnie poprzez cron, najpierw sprawdź go za pomocą następującego polecenia w powłoce unixa:

/usr/local/bin/php -l skrypt.php

Jeśli w skrypcie nie ma błędów, pojawi się komunikat „Nie wykryto błędów składniowych w skrypcie.php”.

Ograniczenia

W przypadku programów uruchamianych przez cron obowiązują te same ograniczenia dotyczące zużywanych zasobów, jak w przypadku procesów uruchamianych przez użytkownika w powłoce unixowej. Mówimy o ograniczeniach czasu wykonania programu, ilości dostępnej pamięci, ograniczeniach rozmiaru pliku i tak dalej.

Cron (korona), Crontab (crontab), Menadżer zadań- wszyscy zaangażowani w „tworzenie lokalizacji” słyszeli te nazwy więcej niż raz. Czym więc jest Cron? Jak z tym pracować? Dlaczego potrzebujesz Crona i jak go poprawnie skonfigurować? Dzisiaj przyjrzymy się wszystkim tym pytaniom.

Pierwszą rzeczą, na którą chcę od razu zwrócić uwagę: Cron, Crontab, Menadżer zadań- to wszystko to samo, nie dajcie się zwieść różnorodności nazw.

W praktyce każdego webmastera niezmiennie będzie istniała potrzeba wykonywania niektórych zadań zgodnie z harmonogramem. Te. Po prostu rejestrujesz polecenie potrzebne do wykonania zadania w danym momencie i gotowe. Wtedy wszystko dzieje się bez Twojego udziału – automatycznie, a co najważniejsze, wtedy, kiedy tego potrzebujesz.

Na przykład musisz okresowo wysyłać powiadomienia do partnerów e-mailem. Lub chcesz ustawić automatyczne powitania lub przypomnienia. Lub masz katalog witryn i chcesz, aby skrypt katalogowy sprawdzał linki zwrotne itp. z określoną częstotliwością. Wszystkie te zadania można łatwo zautomatyzować powierzając je Cronowi lub jak to też mówią – Harmonogram zadań. Istnieją skrypty, w których Cron jest po prostu niezbędny do normalnego działania.

Prawie wszyscy współcześni dostawcy usług hostingowych udostępniają gotową funkcję Harmonogram zadań. Jeśli na Hostingu nie ma takiej funkcji, lepiej nie kontaktować się z taką firmą hostingową. Cron w dzisiejszych czasach nie jest już luksusem i jeśli Hosting nie oferuje w pakiecie usług harmonogramu zadań, lepiej poszukać innej firmy, prawdopodobnie nie będą one miały innych ważnych funkcji.

Przyjrzyjmy się więc wszystkim praktycznym krokom konfiguracji Crona na przykładzie rosyjskiego cPane l (panel sterowania witryny) Firma hostingowa Hudson. Dlaczego dokładnie Hudsona? To proste – moja strona internetowa tu mieszka i bardzo podoba mi się ten Hosting: kompletny pakiet wszystkich możliwych usług w bardzo rozsądnej cenie.

Chociaż ustawienie Harmonogram zadań wszędzie dzieje się mniej więcej tak samo.

Przechodzimy do panelu sterowania witryny, w tym przypadku jest to cPanel (są też inne). Dostęp otrzymasz od razu po zakupie Hosting zejdź poniżej i znajdź tę sekcję, Dodatkowe narzędzia:

Znajdziemy w tym dziale Menadżer zadań i kliknij na to. To menu jest czasami nazywane panelem Cron. Oto jak charakteryzuje się Cron:

„Harmonogram zadań umożliwia uruchamianie poleceń o określonej godzinie bez Twojego udziału. Pozwala to na automatyzację regularnie powtarzających się zadań. Harmonogram zadań jest bardzo elastyczny i pozwala zautomatyzować wykonywanie dowolnych poleceń, które chcesz uruchomić. Na przykład , możesz powiedzieć programowi planującemu, aby co tydzień usuwał pliki tymczasowe, aby nie zajmowały zbyt dużo miejsca na dysku.

Istnieją dwie możliwości leczenia choroby Leśniowskiego-Crohna:

Standardowe i Zaawansowane (styl Unix), przyjrzyjmy się każdemu z nich.

Pierwsza opcja. Kliknij przycisk Standard, otworzy się okno instalacji zadania:

Jak widać, wszystko jest tutaj bardzo proste. Wystarczy ustawić czas wykonania polecenia, wskazując w odpowiednich polach, kiedy polecenie zostanie wykonane i o której godzinie: minuty, Godzina, Dzień, Miesiąc, Dzień tygodnia. I oczywiście wpisz samo polecenie uruchomienia w polu: Komenda do biegu.

Wartości można wpisać ręcznie (w lewym polu) lub korzystając z listy rozwijanej (strzałki po prawej).

Zastanówmy się, co tutaj napisaliśmy. I napisaliśmy następujące zadanie: uruchom polecenie w celu wykonania:
/usr/bin/php /home/freeman/domains/public_html/cron/new_day.php
co 30 minut, co 6 godzin, każdego dnia stycznia, jeśli wypada w poniedziałek.

Po zainstalowaniu zadania kliknij przycisk Dodaj nowe zadanie Cron.

Nie jest jasne, co napisałeś? :) Przyjrzyjmy się drugiej opcji, a następnie wyjaśnię ją bardziej szczegółowo. Wracamy do poprzedniej strony.

Druga opcja. Kliknij przycisk Zaawansowane (styl Unix), otworzy się okno instalacji zadania:

Podoba mi się ta opcja lepszego ustawiania zadania dla Krohna. I choć nazywa się to Advanced, to moim zdaniem jest prostsze i wygodniejsze.

Tutaj, podobnie jak w pierwszym przypadku, należy wskazać, kiedy polecenie zostanie uruchomione, wskazujemy również: minuty S, Godzina S, Dzień, Miesiąc, Dzień tygodnia oraz samo zadanie do wykonania w terenie Zespół. Następnie kliknij przycisk Dodaj Cronjob. Zadanie zostało postawione. Strona jest aktualizowana:

Możesz także dodać nowe zadanie, powtarzając całą procedurę jeszcze raz. Możesz usunąć zadanie klikając krzyżyk obok zadania po prawej stronie.

Jest jeszcze jeden opcjonalny parametr, ale zalecam jego określenie: this adres e-mail. Na ten adres zostanie przesłany raport z wykonania polecenia. Pole jest opcjonalne, ale lepiej wpisać adres, żeby być świadomym sprawy, jeśli coś pójdzie nie tak, Kron poinformuje Cię o tym listownie, a jeśli list dotrze pusty, to wszystko jest w porządku!

Co tu napisaliśmy? Uruchom polecenie o 11 minutach, co drugą godzinę, codziennie, co miesiąc, w 1., 3., 5., 7. dzień tygodnia.

W polu wyboru: minuty wskazać minutę (lub minuty), o której zadanie zostanie uruchomione w terenie Godzina wskaż godzinę (lub godziny) w której zadanie będzie wykonane, a także dzień(y) i miesiąc(y), w każdym polu możesz określić zarówno konkretną godzinę, jak i interwał.

Na przykład możesz określić nie tylko 11 minut, ale 11-15 (interwał), co oznacza, że ​​zadanie będzie uruchamiane co 11, 12, 13, 14, 15 minut. Lub podaj konkretne minuty, np.: 11, 14, 18 - oznacza to, że zadanie zostanie uruchomione o 11, 14 i 18 minucie. Możesz także użyć znaku * (gwiazdka)- oznacza każdy . Jeśli umieścisz * (gwiazdka) w polu Minuty wówczas zadanie będzie uruchamiane co minutę tj. 60 razy na godzinę.

W każdym polu możesz określić zarówno konkretny czas, jak i interwał, a także użyć gwiazdek.

Nagrywać */2 oznacza: co 2 godziny. Wszystkie te odmiany rekordów mają zastosowanie do wszystkich pól ( minuty S, Godzina S, Dzień, Miesiąc, Dzień tygodnia) przy przekazywaniu zadania Kronowi. Rozumiesz, że opcji może być miliony.Uruchamiaj zadanie do wykonania, nawet co minutę przez cały rok. Oczywiście taka potrzeba prawie nigdy nie zachodzi, ale teoretycznie istnieje taka możliwość.

Należy również pamiętać, że niektóre witryny hostingowe nakładają ograniczenia na uruchamianie Crohna, na przykład nie więcej niż 3–10 razy na godzinę. Dlaczego? Stwarza to dość zauważalne obciążenie serwera. Za naruszenie Twoje konto może zostać zablokowane.

Teraz zastanówmy się, jak wypełnione jest pole Komenda do biegu(w pierwszym wariancie) lub Polecenie (w drugim wariancie).

Zadanie jest określone w następujący sposób.

Przede wszystkim wskazujesz ścieżkę do PHP na swoim serwerze, na moim serwerze ścieżka to /usr/bin/php, Twój może być inny, skontaktuj się z administratorami swojego serwera, po ścieżce do PHP wstaw spację i wpisz pełną ścieżkę wewnętrzną do pliku, który Cron powinien uruchomić. Powiedzmy, że potrzebuję Crona do uruchomienia pliku mail.php, znając wewnętrzną ścieżkę do pliku, piszę co następuje:

public_html/cron/mail.php

te. w folderze głównym public_html znajduje się folder cron, w którym znajduje się plik mail.php, a pełne polecenie uruchomienia pliku mail.php będzie wyglądać następująco:

/usr/bin/php /public_html/cron/mail.php

Na różnych hostingach ścieżka do PHP może być inna i inaczej zapisana, folder główny lokalizacji witryny również nie zawsze jest taki sam publiczny_html, więc jeśli nie ma konkretnego przykładu nagrania zadania Crohna, to lepiej zapytać o to administratora, opisując, co ostatecznie chcesz uzyskać. Dobry

MIN GODZINA DOM PON DOW CMD

Tabela: Pola Crontab i prawidłowe zakresy (składnia Crontab w systemie Linux)

1. Planowanie zadań na określony czas

Podstawą korzystania z cron jest wykonywanie zadań w określonym czasie, jak pokazano poniżej. Spowoduje to uruchomienie skryptu pełnej kopii zapasowej 10 czerwca o godzinie 8:30.

Należy pamiętać, że pole czasu używa formatu 24-godzinnego, więc 8:00 to 8, a 20:00 to 20 godzin.

30 08 10 06 * /home/programista/pełna kopia zapasowa

  • 30 – 30 minuta
  • 08 – 08 rano
  • 10 – 10 dzień
  • * - Każdy dzień tygodnia

2. Zaplanuj wykonywanie zadań częściej (np. dwa razy dziennie)

Poniższy skrypt korzysta z dodatkowej kopii zapasowej dwa razy dziennie każdego dnia. W tym przykładzie wykonywana jest przyrostowa kopia zapasowa każdego dnia o godzinie 11:00 i 16:00. Wartości w polu oddzielone przecinkami wskazują, że polecenie powinno zostać wykonane o każdej określonej godzinie.

00 11.16 * * * /home/developer/bin/inkrementalna-kopia zapasowa

00 – 0 minuta (godzina początku) 11, 16 – 11 i 16 godzin * - codziennie * - co miesiąc * - każdy dzień tygodnia

3. Zaplanuj pracę na określony przedział czasowy (np. tylko w dni powszednie)

Jeśli chcesz, aby procedury były uruchamiane co godzinę w określonych odstępach czasu, użyj poniższych.

Procedura Cron na każdy dzień w godzinach pracy

W tym przykładzie stan bazy danych sprawdzany jest codziennie (również w weekendy) w godzinach pracy od 9:00 do 18:00.

00 09-18 * * * /home/developer/bin/check-db-status

00 - 0 minuta (początek godziny) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (godzina) * - codziennie * - co miesiąc * - każdego dnia tydzień

Procedura Cron na każdy dzień roboczy w godzinach pracy

W tym przykładzie sprawdzany jest stan bazy danych w każdy dzień powszedni (z wyjątkiem sobót i niedziel) w godzinach od 9:00 do 18:00.

00 09-18 * * 1-5 /home/ramesh/bin/check-db-status

00 - 0 minuta (początek godziny) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (godziny) * - codziennie * - co miesiąc 1-5 - poniedziałek, Wtorek, środa, czwartek i piątek (co tydzień)

4. Jak przeglądać wpisy Crontab?

Wyświetl aktualne pliki Crontab użytkownika.

Aby wyświetlić pliki crontab-l z konta w systemie UNIX, wykonaj następujące czynności.

Developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Wyświetl wpisy roota w crontab

Zaloguj się jako użytkownik root (su - root) i uruchom crontab-l, jak pokazano poniżej.

Root@dev-db# crontab -l brak crontab dla roota

Aby przeglądać pliki innych użytkowników, zaloguj się jako root i użyj opcji -u (nazwa użytkownika) -l, jak pokazano poniżej.

Root@dev-db# crontab -u nazwa użytkownika -l @monthly /home/username/monthly-backup 00 09-18 * * * /home/nazwa użytkownika/check-db-status

5. Jak edytować wpisy w crontabie?

Edycja bieżących wpisów cron użytkownika.

Aby edytować wpisy, użyj cronab -e, jak pokazano poniżej. Domyślnie edytowane będą bieżące wpisy użytkownika w crontab.

Developer@dev-db$ crontab -e @yearly /home/developer/centos/bin/annual-maintenance */10 * * * * /home/developer/debian/bin/check-disk-space ~ "/tmp/crontab .XXXXyjWkHw” 2L, 83C

Kiedy zapiszesz plik, zapisze on crontab i wyświetli następujący komunikat informujący, że crontab został pomyślnie zmodyfikowany.

~ "crontab.XXXXyjWkHw" 2L, 83C napisany crontab: instalowanie nowego crontaba

Edycja wpisów root w crontab

Zaloguj się jako użytkownik root (su - root) i wykonaj polecenie crontab -e, jak pokazano poniżej.

Root@dev-db# crontab -e

Edytowanie wpisów crontab innego użytkownika

Aby edytować wpis crontab innego użytkownika Linuksa, zaloguj się jako root i użyj -u (nazwa użytkownika) -e, jak pokazano poniżej.

Root@dev-db# crontab -u nazwa użytkownika -e @monthly /home/nazwa użytkownika/fedora/bin/miesięczna-backup 00 09-18 * * * /home/nazwa użytkownika/ubuntu/bin/check-db-status ~ ~ ~ „/tmp/crontab.XXXXyjWkHw” 2L, 83C

6. Wykonywanie Cron co minutę

W idealnym przypadku nie byłoby potrzeby planowania uruchamiania cron co minutę. Jednak zrozumienie tego przykładu pomoże Ci zrozumieć inne przykłady opisane w tym artykule.

Bash * * * * * CMD

* - oznacza możliwą jednostkę - czyli każdą minutę i każdą godzinę przez cały rok. Również bezpośrednie użycie * okaże się bardziej przydatną funkcją w poniższych przykładach.

Podanie */5 w polu minut oznacza co 5 minut. Podanie w polu minut wartości 0-10/2 oznacza co 2 minuty przez pierwsze 10 minut. Zatem konwencję tę można stosować we wszystkich 4 dziedzinach.

7. Uruchamiaj zadania Cron w tle co 10 minut

Jeśli chcesz sprawdzać ilość miejsca na dysku co 10 minut, użyj poniższych poleceń.

*/10 * * * * /home/ramesh/check-disk-space

To zadanie uruchamia określone polecenie sprawdzania dysku co 10 minut przez rok. Ale może być konieczne przeprowadzenie kontroli tylko w godzinach pracy i odwrotnie. Powyższe przykłady pokazują, jak to zrobić.

Zamiast podawać wartości w 5 polach, możemy je określić za pomocą słowa kluczowego, jak pokazano poniżej.

Istnieją specjalne warunki, w których zamiast 5 pól można użyć @, po którym następuje słowo kluczowe - np. ponowne uruchomienie, północ, co roku, co godzinę.

Specjalne słowa kluczowe Cron i ich znaczenie

8. Zaplanuj pracę na pierwszą minutę każdego roku, używając @yearly

Jeśli chcesz, aby zadanie cron było uruchamiane w pierwszych minutach każdego roku, możesz użyć słowa kluczowego @yearly, jak pokazano poniżej. W takim przypadku system przeprowadzi konserwację roczną, korzystając ze skryptu konserwacji rocznej o godzinie 00:00 1 stycznia każdego roku.

@yearly /home/developer/red-hat/bin/annual-maintenance

9. Uruchamiaj zadania co miesiąc, używając słowa kluczowego @monthly

Jest podobny do @yearly powyżej. Ale polecenie jest wykonywane co miesiąc. Polecenie wykona kopię zapasową o godzinie 00:00 pierwszego dnia każdego miesiąca.

@monthly /home/ramesh/suse/bin/tape-backup

10. Uruchamiaj zadania codziennie, używając @daily

Użycie słowa kluczowego @daily spowoduje utworzenie codziennego pliku dziennika, który będzie czyszczony codziennie o godzinie 00:00.

@daily /home/developer/arch-linux/bin/cleanup-logs „dzień się zaczął”

11. Jak uruchomić polecenie Linuksa po każdym ponownym uruchomieniu za pomocą @reboot?

Użycie słowa kluczowego @reboot spowoduje wykonanie określonego polecenia przy każdym uruchomieniu systemu.

@rebootCMD

13. 12. Jak wyłączyć/przekierować pocztę wychodzącą Crontab za pomocą słowa kluczowego MAIL?

Domyślnie crontab wysyła dane wyjściowe zadań do użytkownika, który zainstalował zadanie. Jeśli chcesz przekierować je do innego użytkownika, dodaj lub zaktualizuj zmienną MAIL w crontabie, jak pokazano poniżej.

Deweloper@dev-db$ crontab -l MAIL="programista" @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Jeśli chcesz w ogóle uniemożliwić wysyłanie poczty, tj. przestać wysyłać pliki wyjściowe crontab, dodaj lub zaktualizuj zmienną MAIL w crontab, jak pokazano poniżej.

13. Jak uruchamiać zadania Cron systemu Linux co sekundę za pomocą Crontab

Nie możesz ustawić crona, aby uruchamiał się co sekundę. Ponieważ minimalna jednostka wykonania cron to minuta. W normalnym scenariuszu nie ma potrzeby uruchamiania wykonywania cron co sekundę.

14. Określenie zmiennej PATH w Crontabie

We wszystkich powyższych przykładach podaliśmy bezwzględną ścieżkę polecenia systemu Linux lub skryptu powłoki, który ma zostać wykonany.

Na przykład zamiast podawać /home/developer/tape-backup , jeśli chcesz określić tylko tape-backup , dodaj /home/developer do zmiennej PATH w pliku crontab, jak pokazano poniżej.

Developer@dev-db$ crontab -l PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/developer @roczna roczna-konserwacja */10 * * * * check-disc-space

15. Instalacja Crontaba z pliku Cron

Zamiast bezpośrednio edytować plik crontab, możesz dodać wszystkie wpisy do pliku cron. Jeśli plik zawiera te wpisy, możesz je zrzucić lub zainstalować w cron, jak pokazano poniżej.

Uwaga: Spowoduje to utworzenie pliku cron-file.txt w pliku crontab, który usunie poprzednie wpisy cron. Zachowaj więc ostrożność podczas ładowania wpisów cron z pliku cron.txt:

deweloper@dev-db$ crontab -l brak crontab dla programisty $ cat plik cron.txt @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space developer@dev -db$ crontab cron-file.txt developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space