Jak edytować plik Crontab systemu Linux, aby zaplanować zadania?
Co wiedzieć
- Wyświetl zawartość crontab za pomocą: crontab -l
- Edytuj crontab za pomocą: crontab -e
- Czas działa z: minuta, godzina, dzień miesiąca, miesiąc, dzień tygodnia. Użyj gwiazdki (*) do uruchamiania crona codziennie, o godzinie itp.
W tym artykule wyjaśniono, jak używać crona, który jest demonem w systemie Linux, który uruchamia procesy w regularnych odstępach czasu. Sprawdza pewne foldery w systemie pod kątem skryptów do uruchomienia w serii folderów, w tym /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly i /etc/cron.monthly; istnieje również plik o nazwie /etc/crontab.
Umieść skrypty w folderach Cron
Umieść skrypty w odpowiednich folderach, aby uruchamiały się w regularnych odstępach czasu. Na przykład otwórz okno terminala i uruchom następujące polecenie ls:
ls /etc/cron*
Polecenie wyświetla listę programów lub skryptów uruchamianych co godzinę, codziennie, co tydzień i co miesiąc.
Te foldery są niejasne. Na przykład, codzienny oznacza, że skrypt jest uruchamiany raz dziennie, ale nie masz kontroli nad czasem, w którym skrypt jest uruchamiany w tym dniu.
W tym miejscu pojawia się plik crontab. Edytując plik crontab, uruchamiasz skrypt lub program w dokładnej dacie i godzinie, o której chcesz, aby został uruchomiony.
Uprawnienia
Polecenie crontab wymaga, aby użytkownik miał uprawnienia do edycji pliku crontab. Istnieją dwa pliki, które zarządzają uprawnieniami crontab: /etc/cron.allow i /etc/cron.deny.
- Jeśli plik /etc/cron.allow istnieje, użytkownik, który chce edytować plik crontab, musi być wymieniony w tym pliku.
- Jeśli plik cron.allow nie istnieje, ale istnieje plik /etc/cron.deny, użytkownik nie może istnieć w tym pliku.
- Jeśli oba pliki istnieją, plik /etc/cron.allow zastępuje plik /etc/cron.deny.
- Jeśli żaden plik nie istnieje, to od konfiguracji systemu zależy, czy użytkownik może edytować crontab.
Użytkownik root może zawsze edytować plik crontab. Możesz albo użyć polecenie su aby przełączyć się na użytkownika root lub polecenie sudo aby uruchomić polecenie crontab.
Edytuj plik Crontab
Każdy użytkownik posiadający odpowiednie uprawnienia może utworzyć plik crontab. Polecenie cron wyszukuje wszystkie pliki crontab i przechodzi przez każdy plik.
Aby sprawdzić, czy masz plik crontab, uruchom następujące polecenie:
crontab -l.
Jeśli nie masz pliku crontab, komunikat brak crontab dla pojawi się, w przeciwnym razie zostanie wyświetlony plik crontab.
Ta funkcjonalność różni się w zależności od systemu. Czasami w ogóle nic nie wyświetla, a innym razem wyświetla nie edytuj tego pliku.
Aby utworzyć lub edytować plik crontab, uruchom następujące polecenie:
crontab -e.
Plik, który się otwiera, zawiera wiele informacji, ale kluczową częścią jest przykład przed końcem sekcji komentarzy (komentarze są oznaczone liniami zaczynającymi się od #).
# m h dom mon dow polecenie.
0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
W każdym wierszu pliku crontab można zmieścić sześć informacji:
- Minuta dnia, w którym polecenie ma zostać uruchomione (m).
- Godzina dnia, w którym polecenie ma zostać uruchomione (h).
- Dzień miesiąca, w którym polecenie ma zostać uruchomione (dom).
- Miesiąc, w którym polecenie ma zostać uruchomione (mon).
- Dzień tygodnia, w którym polecenie ma zostać uruchomione (dow).
- Komenda.
Dla każdego elementu (z wyjątkiem polecenia) możesz określić symbol wieloznaczny. Spójrz na następujący przykładowy wiersz crontab:
30 18 * * * tar -zcf /var/backups/home.tgz /home/
Po 30 minutach, 18 godzinach i dowolnym dniu, miesiącu i dniu tygodnia ten wpis crontab będzie zamek błyskawiczny oraz smoła katalog domowy do folderu /var/backups.
W poniższych przykładach zastąp słowo polecenie poleceniem, które chcesz uruchomić.
Aby uruchomić polecenie o 30 minut po każdej godzinie, uruchom następujące polecenie:
30 * * * * polecenie.
Aby uzyskać polecenie uruchamiane co minutę po godzinie 18:00, uruchom następujące polecenie:
* 18 * * * polecenie.
Dlatego musisz być ostrożny przy konfigurowaniu poleceń crontab.
Na przykład:
* * * 1 * polecenie.
To polecenie jest uruchamiane co minutę o każdej godzinie każdego dnia tygodnia w styczniu.
Aby uruchomić polecenie o 5 rano 1 stycznia, wprowadź następujące polecenie do pliku crontab:
0 5 1 1 * polecenie.
Jak usunąć plik Crontab?
W większości przypadków nie będziesz chciał usuwać pliku crontab. Możesz jednak chcieć usunąć niektóre wiersze z pliku crontab.
Aby usunąć plik crontab użytkownika, uruchom następujące polecenie:
crontab -r.
Bezpieczniejszym sposobem na to jest uruchomienie następującego polecenia:
crontab -i.
System operacyjny prosi o weryfikację, zanim usunie plik crontab.