Izkoristite ukaz crontab Linux za avtomatizacijo različnih vsakdanjih in ponavljajočih se nalog, ki vam poenostavijo življenje. To izvrstno in enostavno za uporabo orodje v kombinaciji z nekaj skripti ne more samo avtomatizirati vseh vrst nalog, temveč tudi pomaga pri izogibanju preprostim človeškim napakam ali pozabi.
Tu boste izvedeli, kaj je crontab, kako dodati avtomatizirana opravila in nekaj primerov iz resničnega sveta.
Kaj je zdravilo Crontab?
Crontab je demonski proces, ki se v ozadju izvaja na skoraj vseh računalnikih Linux in se uporablja za razporejanje in izvajanje avtomatiziranih nalog v določenih časovnih intervalih. Razvijalci programske opreme ga pogosto uporabljajo tudi za izvajanje zamudnih nalog v ozadju.
To je lahko karkoli, vključno s pošiljanjem paketnih e-poštnih sporočil, preverjanjem vašega vira Twitterja, izvajanjem varnostnih kopij ali preprosto izvajanjem opomnikov.
Osnovni ukazi Crontab
Vsak uporabnik Linuxa v računalniku ima svojo datoteko crontab, ki vsebuje njegova aktivna opravila crontab. Tu je nekaj osnovnih terminalskih ukazov, ki jih boste uporabili za ogled in spreminjanje datoteke crontab:
- crontab-l Seznam vseh opravil crontab.
- crontab -e Uredite datoteko crontab.
- crontab -r Odstranite vse vnose iz datoteke crontab.
Zgornji ukazi bodo namenjeni trenutnega uporabnika crontab. Če želite spremeniti datoteko crontab drugega uporabnika, preprosto uporabite -u možnost. Na primer, lahko uredite jdoe uporabnikova datoteka crontab z ukazom:
Želite bolje upravljati uporabnike v Ubuntu Linuxu? Odgovor je ustvariti skupine, nato pa uporabiti funkcijo Ubuntu add user.
sudo crontab -ujdoe -e
Oblika delovnih mest Crontab
Vsako opravilo crontab je sestavljeno iz ene vrstice in je oblikovano kot spodaj:
MINUTE URA DAN MESEC UKAZ TEDEN
Spodnja tabela pojasnjuje različne elemente opravila crontab:
Element | Ranage | Opis |
---|---|---|
Minuta | 0 - 59 | Minuta za izvedbo posla crontab ob. |
Ura | 0 - 23 | Ura za izvedbo posla crontab ob. |
Dan | 1 - 31 | Dan v mesecu za izvedbo posla crontab ob. |
Mesec | 1 - 12 | Mesec za izvedbo posla crontab ob. |
Delovni dan | 0 - 6 | Dan v tednu za izvedbo posla crontab ob. |
Ukaz | Kateri koli ukaz Linuxa, ki ga lahko izvedete na terminalu. |
Z zvezdico (*) lahko v katerem koli polju označite nadomestni znak, kar pomeni, da se bo opravilo crontab izvedlo ne glede na to časovno obdobje. Na primer, spodnje opravilo crontab se bo izvajalo vsako noč natanko ob 3:20:
20 3 * * * / root / varnostna kopija.sh
Več vrednosti
Vsako časovno obdobje lahko vključuje tudi več elementov. Natančne vrednosti lahko določite tako, da jih ločite z vejico, spodnje opravilo crontab pa se bo izvajalo vsako uro ob 20 in 50 minutah čez uro:
20,50 * * * * / pot / do / ukaz.sh
Če pa želite opraviti opravilo crontab v določenih intervalih v časovnem obdobju, ki ga lahko uporabite * / OBDOBJE, spodnje opravilo crontab pa se bo samodejno izvajalo ob 15 minutah čez uro vsake tri ure:
15 * / 3 * * * / pot / do / ukaz.sh
Tiha delovna mesta v Crontabu
Odvisno od tega, boste morda želeli odstraniti ves izhod iz opravil crontab, da ne bodo končali v poštni mapi vašega sistema. To lahko storite tako, da dodate > / dev / null 2> & 1 na katero koli delo v crontabu. Na primer:
0 6 15 * * /path/to/backup.sh> / dev / null 2> & 1
Dodajanje opravil Crontab
Na splošno je najpogosteje uporabljena metoda za dodajanje ali spreminjanje opravil crontab crontab -e ukaz. Zaženite ta ukaz v terminalu:
crontab -e
To bo odprlo a urejevalnik besedil kot naprimer nano z vsebino datoteke crontab. Vsako opravilo crontab je v eni vrstici in vrstice lahko dodajate, spreminjate in odstranjujete po želji. Ko končate, shranite in zaprite datoteko s pritiskom na Ctrl + W, čemur sledi Y. in Enter tipke, ki bodo takoj aktivirale vsa opravila crontab v datoteki.
Bližnjica za dodajanje opravil
Namesto da ročno spremenite datoteko crontab, lahko za dodajanje opravila izvedete hiter en sam ukaz. Če želite na primer dodati to opravilo crontab, ki se izvaja vsako nedeljo ob 14:00:
0 14 * * 0 / pot / do / ukaz.sh
Opravilo lahko dodate v datoteko crontab z enim samim ukazom:
(krontab-1; echo "0 14 * * 0 /path/to/command.sh";) | crontab
Zgornji ukaz preprosto navede vsa opravila, ki so trenutno v vaši datoteki crontab, natisne novo opravilo in vse skupaj prenese crontab nadomešča njegovo vsebino.
Seznam / odstranjevanje datoteke Crontab
Z ukazom lahko navedete vsa opravila, ki so trenutno aktivna v datoteki crontab:
crontab -l
Lahko tudi odstranite vsa opravila crontab in izpraznite vsebino datoteke crontab z ukazom:
crontab -r
Primer: Predvajaj zvoke!
Potrebujete hiter opomnik vsaki dve uri med delom, da vas obvesti, da je čas minil? Zgrabite svoj najljubši zvočni posnetek v skoraj kateri koli obliki (.wav, .mp4, karkoli) in če je shranjen na (na primer) /home/myuser/myalert.wav naj se samodejno predvaja z opravilom crontab:
0 * / 2 * * * aplay /home/myuser/myalert.wav
Kaj pa, če bi vas lepo poslali s tedenskega dela s svojo najljubšo skladbo, ki se samodejno predvaja vsak petek popoldne ob 17:00? Zgrabi svoj najljubši posnetek pesmi in ga shrani na primer /home/myuser/friday_song.mp4 dodali bi opravilo crontab:
0 17 * * 5 aplay /home/myuser/friday_song.mp4
Primer: Varnostno kopiranje datotek z Rsync
Ena izmed mnogih odličnih načinov uporabe crontaba je možnost samodejnega varnostnega kopiranja datotek na oddaljeni strežnik. S tem bistveno zmanjšajte tveganje, da boste še enkrat izgubili pomembne podatke odlična vadnica za rsync.
Primer: Preverite, ali so spletna mesta na spletu
Morda želite vsakih pet minut samodejno preveriti, ali so na spletnem mestu različna spletna mesta, in vas obvestiti po e-pošti, če katera ne deluje. Tu je čudovit mali skript PHP, ki bo naredil prav to.
php
// E-poštni naslov za obveščanje spletnih mest dol
$ email = '[email protected]';
// Določite URL-je za preverjanje
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Preglejte URL-je
$ dol = [];
foreach ($ urls kot $ url) {
// Preverite URL
$ status = check_url ($ url);
če ($ status! = 200) {
$ navzdol [] = $ url;
}
}
// Pošljite e-pošto, če imamo manjkajoča spletna mesta
if (count ($ down)> 0) {
mail ($ e-pošta, "Nujno - Spletna mesta dol!", "Vaš bot je zaznal naslednja spletna mesta trenutno ni več:
". implode ("
", $ navzdol));
}
// Izhod
izhod (0);
/ **
* Preveri URL < br /> * /
funkcija check_url (niz $ url): int
{
// Pošlji prek 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, resnično);
$ response = curl_exec ($ ch);
// Pridobite stanje in zaprite povezavo
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Vrni
vrni $ status;
}
Preprosto spremenite e-poštni naslov in želene URL-je, da preverite na vrhu datoteke, in shranite to nekje kot npr /home/myuser/check_sites.php . Če želite, da se ta skript zažene vsakih pet minut in vas po e-pošti obvesti o vseh nedelujočih spletnih mestih, dodajte opravilo crontab:
* / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1
Avtomatizirajte svoje življenje!
S tem člankom ste upajmo, da je razumel avtomatizacijsko moč crontaba in kako ga lahko uporabimo za avtomatizacijo mnogih vsakdanjih in ponavljajočih se nalog v vašem življenje.
Izvedeli ste, kaj je crontab, o datoteki crontab, kako so formatirana opravila crontab in nekateri primeri, kako jo lahko uporabimo.
Želite prihraniti čas in se izogniti ponavljajočim se opravilom? Odgovor je avtomatizacija! Tukaj je nekaj uporabnih aplikacij za avtomatizacijo namizja za Linux.
- Programiranje
- Linux
Naročite se na naš Glasilo
Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!
Še en korak…!
Potrdite svoj e-poštni naslov v e-poštno sporočilo, ki smo vam ga pravkar poslali.