Skorzystaj z polecenia crontab Linux, aby zautomatyzować różne przyziemne i powtarzalne zadania, upraszczając swoje życie. To doskonałe i łatwe w użyciu narzędzie, w połączeniu z pewnymi skryptami, może nie tylko zautomatyzować wszelkiego rodzaju zadania, ale także pomaga uniknąć prostych błędów ludzkich lub zapomnienia.
Tutaj dowiesz się, czym jest crontab, jak dodawać zautomatyzowane zadania i kilka przykładów z życia.
Co to jest Crontab?
Crontab to proces demona, który działa w tle na prawie wszystkich komputerach z systemem Linux i jest używany do planowania i wykonywania automatycznych zadań w określonych odstępach czasu. Jest również często używany przez programistów do wykonywania czasochłonnych zadań w tle.
Może to być wszystko, w tym między innymi wysyłanie wsadowych wiadomości e-mail, sprawdzanie kanału na Twitterze, tworzenie kopii zapasowych lub po prostu wykonywanie przypomnień.
Podstawowe polecenia Crontab
Każdy użytkownik Linuksa na komputerze ma swój własny plik crontab, który zawiera jego aktywne zadania crontab. Oto kilka podstawowych poleceń terminala, których będziesz używać do przeglądania i modyfikowania pliku crontab:
- crontab-l Lista wszystkich zadań crontab.
- crontab -e Edytuj plik crontab.
- crontab -r Usuń wszystkie wpisy z pliku crontab.
Powyższe polecenia będą dotyczyły programu aktualny użytkownik plik crontab. Jeśli chcesz zmodyfikować plik crontab innego użytkownika, po prostu użyj rozszerzenia -u opcja. Na przykład możesz edytować plik jdoe plik crontab użytkownika z poleceniem:
Chcesz lepiej zarządzać użytkownikami w systemie Ubuntu Linux? Odpowiedzią jest utworzenie grup, a następnie skorzystanie z funkcji dodawania użytkownika w Ubuntu.
sudo crontab -ujdoe -e
Format zadań Crontab
Każde zadanie crontab składa się z jednej linii i jest sformatowane jak poniżej:
MINUTA GODZINA DZIEŃ MIESIĄC POLECENIE WEEKDAY
Poniższa tabela wyjaśnia różne elementy zadania crontab:
Element | Ranage | Opis |
---|---|---|
Minuta | 0 - 59 | Minuta wykonania zadania crontab w. |
Godzina | 0 - 23 | Godzina wykonania zadania crontab o godzinie. |
Dzień | 1 - 31 | Dzień miesiąca, w którym ma być wykonywane zadanie crontab. |
Miesiąc | 1 - 12 | Miesiąc wykonania zadania crontab w. |
Dzień powszedni | 0 - 6 | Dzień tygodnia, o którym ma być wykonywane zadanie crontab. |
Komenda | Dowolne polecenie Linuksa, które możesz wykonać na terminalu. |
Możesz użyć gwiazdki (*) w dowolnym polu, aby oznaczyć symbol wieloznaczny, co oznacza, że zadanie crontab zostanie wykonane niezależnie od tego okresu. Na przykład poniższe zadanie crontab będzie wykonywane każdej nocy dokładnie o 3:20:
20 3 * * * /root/backup.sh
Wiele wartości
Każdy okres może również zawierać wiele elementów. Możesz określić dokładne wartości, oddzielając je przecinkiem, a poniższe zadanie crontab będzie wykonywane co godzinę 20 i 50 minut po godzinie:
20,50 * * * * /path/to/command.sh
Jeśli jednak chcesz wykonywać zadanie crontab w określonych odstępach czasu w okresie, którego możesz użyć */KROPKA, a poniższe zadanie crontab będzie automatycznie wykonywane 15 minut po pełnej godzinie co trzy godziny:
15 * / 3 * * * /path/to/command.sh
Utrzymywanie ciszy w zadaniach Crontab
W zależności od tego, możesz chcieć wyeliminować wszystkie dane wyjściowe z zadań crontab, aby nie trafiały one do folderu poczty systemu. Możesz to zrobić, dołączając > / dev / null 2> & 1 do dowolnego zadania crontab. Na przykład:
0 6 15 * * /path/to/backup.sh> / dev / null 2> & 1
Dodawanie zadań Crontab
Ogólnie najczęściej używaną metodą dodawania lub modyfikowania zadań crontab jest crontab -e Komenda. Uruchom to polecenie w terminalu:
crontab -e
Spowoduje to otwarcie pliku Edytor tekstu Jak na przykład nano z zawartością twojego pliku crontab. Każde zadanie crontab znajduje się w jednej linii i możesz dodawać, modyfikować i usuwać linie według potrzeb. Po zakończeniu zapisz i zamknij plik, naciskając Ctrl + W., po którym następuje Y i Wchodzić klucze, które natychmiast aktywują wszystkie zadania crontab w pliku.
Skrót do dodawania ofert pracy
Zamiast ręcznie modyfikować plik crontab, istnieje jedno szybkie polecenie, które można uruchomić, aby dodać zadanie. Na przykład, jeśli chcesz dodać to zadanie crontab, które jest uruchamiane w każdą niedzielę o 14:00:
0 14 * * 0 /path/to/command.sh
Możesz dodać zadanie do pliku crontab za pomocą jednego polecenia:
(crontab -l; echo "0 14 * * 0 /ścieżka/do/polecenia.sh";) | crontab
Powyższe polecenie po prostu wyświetla listę wszystkich zadań aktualnie znajdujących się w pliku crontab, drukuje nowe zadanie i przesyła wszystko do crontab zastępując jego zawartość.
Wyświetlanie / usuwanie pliku Crontab
Możesz wyświetlić listę wszystkich aktualnie aktywnych zadań w pliku crontab za pomocą polecenia:
crontab -l
Możesz także usunąć wszystkie zadania crontab i opróżnić zawartość pliku crontab za pomocą polecenia:
crontab -r
Przykład: Play Sounds!
Potrzebujesz szybkiego przypomnienia co dwie godziny podczas pracy, aby wiedzieć, że czas minął? Chwyć swój ulubiony klip audio w prawie każdym formacie (.wav, .mp4, cokolwiek) i jeśli jest zapisany w (na przykład) /home/myuser/myalert.wav spraw, aby był automatycznie odtwarzany z zadaniem crontab:
0 * / 2 * * * aplay /home/myuser/myalert.wav
Co powiesz na miłą rezygnację z tygodniowej pracy z ulubioną piosenką odtwarzaną automatycznie o 17:00 w każdy piątek po południu? Chwyć ulubiony klip z piosenką i jeśli zostanie zapisany, powiedz /home/myuser/friday_song.mp4 dodałbyś zadanie crontab:
0 17 * * 5 aplay /home/myuser/friday_song.mp4
Przykład: Kopia zapasowa plików za pomocą Rsync
Jednym z wielu doskonałych zastosowań crontab jest możliwość automatycznego tworzenia kopii zapasowych plików na zdalnym serwerze. Dzięki temu znacznie zmniejsz ryzyko ponownej utraty ważnych danych doskonały poradnik rsync.
Przykład: Sprawdź, czy witryny są online
Może chcesz automatycznie sprawdzać co pięć minut, czy różne witryny są online, i otrzymywać powiadomienia e-mailem, jeśli którakolwiek z nich nie działa. Oto sprytny mały skrypt PHP, który właśnie to zrobi.
php
// Adres e-mail do powiadamiania o opuszczonych witrynach
$ email = 'ja@moja_domena.com';
// Zdefiniuj adresy URL do sprawdzenia
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Przejrzyj adresy URL
$ down = [];
foreach ($ urls as $ url) {
// Sprawdź URL
$ status = check_url ($ url);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// Wyślij e-mail, jeśli mamy niedostępne witryny
if (count ($ down)> 0) {
mail ($ email, "Pilne - Witryny nie działają!", "Twój bot wykrył następujące witryny obecnie niedostępny:
”. implode ("
", $ down));
}
// Wyjście
wyjście (0);
/ **
* Sprawdź adres URL < br /> * /
function check_url (string $ url): int
{
// Wyślij przez cURL
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER /, true); curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true);
$ response = curl_exec ($ ch);
// Pobierz status i zamknij połączenie
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Powrót
return $ status;
}
Po prostu zmodyfikuj adres e-mail i żądane adresy URL, aby sprawdzić na górze pliku, i zapisz to gdzieś, na przykład /home/myuser/check_sites.php . Aby ten skrypt był uruchamiany co pięć minut i powiadamiał Cię e-mailem o wszystkich niedziałających witrynach, dodaj zadanie crontab:
* / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1
Zautomatyzuj swoje życie!
W tym artykule Ty miejmy nadzieję, że zrozumieli moc automatyzacji crontab i sposób, w jaki można go wykorzystać do automatyzacji wielu przyziemnych i powtarzalnych zadań w twoim życie.
Dowiedziałeś się, czym jest crontab, o pliku crontab, w jaki sposób są formatowane zadania crontab oraz o kilku rzeczywistych przykładach, jak można go wykorzystać.
Chcesz zaoszczędzić czas i uniknąć powtarzających się zadań? Odpowiedzią jest automatyzacja! Oto kilka przydatnych aplikacji do automatyzacji pulpitu w systemie Linux do wypróbowania.
- Programowanie
- Linux
Zasubskrybuj nasz Biuletyn
Dołącz do naszego biuletynu, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Jeszcze jeden krok…!
Potwierdź swój adres e-mail w e-mail, który właśnie wysłaliśmy.