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.