Skip to main content

Jak edytować plik Crontab systemu Linux, aby zaplanować zadania

Linux Crontab. Harmonogram zadań (Kwiecień 2025)

Linux Crontab. Harmonogram zadań (Kwiecień 2025)
Anonim

Demon w systemie Linux o nazwie cron uruchamia procesy w regularnych odstępach czasu. Sprawdza niektóre foldery w systemie, aby skrypty działały 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.

Umieszczanie skryptów w folderach Cron

Możesz po prostu umieszczać skrypty w odpowiednich folderach, aby uruchomić je w regularnych odstępach czasu.

Na przykład otwórz okno terminalu i uruchom następujące polecenie ls:

ls / etc / cron *

Zobaczysz listę programów lub skryptów uruchamianych co godzinę, codziennie, co tydzień i co miesiąc.

Problem z tymi folderami polega na tym, że są trochę niejasne. Na przykład, codziennie oznacza, że ​​skrypt będzie uruchamiany raz dziennie, ale nie masz kontroli nad czasem, w którym skrypt będzie działał w tym dniu.

W tym miejscu pojawia się plik crontab.

Edytując plik crontab, można uzyskać skrypt lub program uruchamiany z dokładną datą i godziną uruchomienia.

Uprawnienia

Polecenie crontab wymaga, aby użytkownik miał uprawnienia do edytowania pliku crontab. Zasadniczo istnieją dwa pliki używane do zarządzania uprawnieniami crontab:

  • /etc/cron.allow
  • /etc/cron.deny

Jeśli istnieje plik /etc/cron.allow, to użytkownik, który chce edytować plik crontab, musi znajdować się w tym pliku. Jeśli plik cron.allow nie istnieje, ale istnieje plik /etc/cron.deny, to użytkownik nie może istnieć w tym pliku. Jeśli istnieją oba pliki, plik /etc/cron.allow zastępuje plik /etc/cron.deny. Jeśli żaden z plików nie istnieje, to zależy od konfiguracji systemu, czy użytkownik może edytować plik crontab.

Użytkownik root może zawsze edytować plik crontab. Możesz użyć polecenia su, aby przełączyć się na użytkownika root lub polecenie sudo, aby uruchomić polecenie crontab.

Edytowanie pliku Crontab

Każdy użytkownik, który ma odpowiednie uprawnienia, może utworzyć własny plik crontab. Polecenie cron zasadniczo szuka wszystkich plików crontab i przechodzi przez każdy z nich.

Aby sprawdzić, czy masz plik crontab, uruchom następujące polecenie:

crontab -l

Jeśli nie masz pliku crontab, pojawi się komunikat "no crontab for "w przeciwnym razie wyświetli się plik crontab (ta funkcja różni się w zależności od systemu, czasami nie wyświetla nic, a kiedy indziej wyświetla" nie edytuj tego pliku ").

Aby utworzyć lub edytować plik crontab, uruchom następujące polecenie:

crontab -e

Otwierany plik zawiera wiele informacji, ale kluczową częścią jest przykład tuż przed końcem sekcji komentarzy (komentarze są oznaczone liniami zaczynającymi się od #).

# m h dom mon dow command

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Jest 6 informacji pasujących do każdej linii pliku crontab:

  • Minuta dnia, w którym polecenie ma się uruchomić (m)
  • Godzina dnia, w której ma działać polecenie (h)
  • Dzień miesiąca, w którym polecenie ma się uruchomić (dom)
  • Miesiąc, w którym ma działać polecenie (mon)
  • Dzień tygodnia, w którym polecenie ma zostać uruchomione (dow)
  • Komenda

Dla każdej pozycji (z wyjątkiem polecenia) można określić symbol wieloznaczny. Spójrz na następujący przykład linii 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 zamieni i skompresuje katalog domowy do folderu / var / backups.

Aby uzyskać polecenie uruchamiania z prędkością 30 minut po każdej godzinie, uruchom następujące polecenie:

30 * * * * polecenie

Aby uzyskać polecenie uruchamiane co minutę po godzinie 18, uruchom następujące polecenie:

* 18 * * * polecenie

Dlatego musisz być ostrożny przy konfigurowaniu poleceń crontab.

Na przykład:

* * * 1 * polecenie

To polecenie będzie uruchamiane co minutę każdej godziny każdego dnia każdego tygodnia w styczniu.

Aby uruchomić polecenie o 5 rano 1 stycznia, wykonasz następujące polecenie do pliku crontab:

0 5 1 1 * polecenie

Jak usunąć plik Crontab

Zazwyczaj nie chcesz usuwać pliku crontab, ale możesz chcieć usunąć niektóre wiersze z pliku crontab.

Jeśli jednak chcesz usunąć plik crontab użytkownika, uruchom następujące polecenie:

crontab -r

Bezpieczniejszym sposobem wykonania tej czynności jest uruchomienie następującego polecenia:

crontab -i

System operacyjny prosi o weryfikację przed usunięciem pliku crontab.