Wyszukiwanie w witrynie

11 Przykłady zadań planowania Cron w systemie Linux


W tym artykule przejrzymy i zobaczymy, jak możemy planować i uruchamiać zadania systemu Linux automatycznie w tle w regularnych odstępach czasu za pomocą polecenia Crontab.

Ręczne wykonywanie częstych zadań jest zniechęcającym zadaniem dla administratorów systemu, a takie zadania można zaplanować i uruchomić automatycznie w tle bez interwencji człowieka za pomocą demona cron w systemie operacyjnym Linux lub Unix.

Na przykład możesz zautomatyzować tworzenie kopii zapasowych systemu Linux, zaplanować aktualizacje i synchronizację plików oraz wiele więcej za pomocą demona Cron, który służy do uruchamiania zaplanowanych zadań z wiersza poleceń lub użyj narzędzi online do wygenerowania zadań cron.

Cron budzi się co minutę i sprawdza zaplanowane zadania w przeliczeniu – Crontab (CRON TABle) to tabela, w której możemy zaplanować tego rodzaju powtarzalne zadania .

Wskazówki: każdy użytkownik może mieć swój własny crontab, na którym może tworzyć, modyfikować i usuwać zadania. Domyślnie cron jest włączony dla użytkowników, jednak możemy ograniczyć użytkowników, dodając wpis w pliku /etc/cron.deny.

Crontab w Linuksie

Plik Crontab składa się z poleceń w każdym wierszu i faktycznie ma sześć pól oddzielonych spacją lub tabulatorem. Początkowe pięć pól przedstawia czas wykonania zadań, a ostatnie pole służy do wykonywania poleceń.

  • Minuta (utrzymaj wartości pomiędzy 0-59)
  • Godzina (utrzymuj wartości pomiędzy 0-23)
  • Dzień miesiąca (utrzymuj wartości pomiędzy 1-31)
  • Miesiąc roku (utrzymuj wartości pomiędzy 1-12 lub styczeń-grudzień, możesz użyć pierwszych trzech liter nazwy każdego miesiąca, tj. styczeń lub czerwiec.)
  • Dzień tygodnia (przechowuj wartości pomiędzy 0-6 lub niedziela-sobota. Tutaj również możesz użyć pierwszych trzech liter nazwy każdego dnia, np. niedziela lub środa. )
  • Polecenie — /ścieżka/do/polecenie lub skrypt, który chcesz zaplanować.

1. Wyświetl wpisy Crontab

Wyświetl zadanie lub zarządzaj nim za pomocą polecenia crontab z opcją -l dla bieżącego użytkownika.

crontab -l

00 10 * * * /bin/ls >/ls.txt

2. Edytuj wpisy Crontab

Aby edytować wpis crontab, użyj -e opcji pokazanej poniżej. Poniższy przykład otworzy zaplanowane zadania w edytorze VI. Wprowadź niezbędne zmiany i przestań naciskać klawisze :wq, które automatycznie zapisują ustawienie.

crontab -e

3. Wyświetl listę zaplanowanych zadań Cron użytkownika

Aby wyświetlić listę zaplanowanych zadań konkretnego użytkownika o nazwie tecmint przy użyciu opcji -u (Użytkownik) i -l (Lista).

crontab -u tecmint -l

no crontab for tecmint

Uwaga: tylko użytkownik root ma pełne uprawnienia do przeglądania wpisów crontab innych użytkowników. Zwykli użytkownicy nie mogą oglądać innych.

4. Usuń wpis Crontab

Uwaga: Crontab z -r parametrem usunie całe zaplanowane zadania bez potwierdzenia z Crontab. Użyj opcji -i przed usunięciem pliku crontab użytkownika.

crontab -r

5. Monituj przed usunięciem Crontab

crontab z opcją -i, opcja wyświetli monit o potwierdzenie od użytkownika przed usunięciem pliku crontab użytkownika.

crontab -i -r

crontab: really delete root's crontab?

6. Dozwolone znaki specjalne (*, -, /, ?, #)

  • Gwiazdka(*) – Dopasuj wszystkie wartości w polu lub dowolną możliwą wartość.
  • Myślnik(-) – aby zdefiniować zakres.
  • Ukośnik (/) – pierwsze pole /10 oznacza co dziesięć minut lub przyrost zasięgu.
  • Przecinek (,) – aby oddzielić elementy.

7. Ogólnosystemowy harmonogram Cron

Administrator systemu może korzystać ze wstępnie zdefiniowanego katalogu cron, jak pokazano poniżej.

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.miesięcznie
  • /etc/cron.weekly

8. Zaplanuj zadanie na konkretny czas

Poniższe zadania usuwają puste pliki i katalogi z /tmp codziennie o 12:30. Aby wykonać polecenie crontab, musisz podać nazwę użytkownika. W poniższym przykładzie użytkownik root wykonuje zadanie cron.

crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

9. Specjalne ciągi dla wspólnego harmonogramu

@reboot

Polecenie zostanie wykonane po ponownym uruchomieniu systemu.

@daily

Raz dziennie lub można użyć @midnight.

@weekly

Raz w tygodniu.

@yearly

Raz na rok. możemy również użyć słowa kluczowego @annually.

Jeśli chcesz użyć tego samego, musisz zastąpić pięć pól polecenia cron słowami kluczowymi.

10. Wiele poleceń z podwójnym ampersandem (&&)

W poniższym przykładzie polecenia 1 i polecenie 2 są uruchamiane codziennie.

crontab -e

@daily <command1> && <command2>

11. Wyłącz powiadomienia e-mail.

Domyślnie cron wysyła pocztę na konto użytkownika wykonującego zadanie cron. Jeśli chcesz to wyłączyć, dodaj swoje zadanie cron podobnie jak w poniższym przykładzie. Użycie opcji >/dev/null 2>&1 na końcu pliku przekieruje wszystkie dane wyjściowe wyników cron do /dev/null.

[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1

wniosek: Automatyzacja zadań może pomóc nam wykonywać nasze zadania lepiej, bez błędów i wydajniej. Możesz odwołać się do strony podręcznika programu crontab, aby uzyskać więcej informacji, wpisując polecenie „man crontab” w swoim terminalu.