Ovaj će članak objasniti zadatke raspoređivanja i pokretanje skripti u redovitim intervalima pomoću cron poslova.
Što je Cron?
Cron je program za planiranje zadataka koji se izvršava u pozadini kao proces. Može se koristiti za povremeno pokretanje određenih poslova koji su raspoređeni koristeći njegov unaprijed definirani skup pravila. Cron dolazi predinstaliran na većinu Linux distribucija ili dostupan u spremištima za ručnu instalaciju.
Cron Presets
Cron na Ubuntu dolazi s nizom unaprijed definiranih planera. Možete ih provjeriti pokretanjem naredbe u nastavku:
$ ls / etc / cron.*Te su mape obično "/ etc / cron.satno "," / etc / cron.dnevno "," / etc / cron.mjesečno "i" / etc / cron.tjedni".
Samo stavite željene skripte u jednu od ovih mapa za pokretanje automatiziranih zadataka po satu, dnevno, mjesečno ili tjedno.
Imajte na umu da cron prema zadanim postavkama koristi ljusku “/ bin / sh”. Ako želite koristiti “/ bin / bash” kao ljusku u cron skriptama, morate koristiti “!# / bin / bash ”hashbang na vrhu datoteke skripte ili definirajte ljusku kao varijablu„ SHELL = / bin / bash ”u prvom retku zakazanog bash skripta. Nadjačavanje varijable okruženja “SHELL” također radi za crontab editor koji je objašnjen u nastavku.
Ne mogu sve varijable okruženja sustava biti izložene cron poslovima. Stoga je općenito dobra ideja ručno definirati važne varijable okruženja u skripti koju je planirao cron.
Crontab
Crontab vam omogućuje da definirate vlastite planirane zadatke. Pomoću njega možete konfigurirati cron rasporede koji se razlikuju od četiri standardne cron unaprijed definirane postavke.
Da biste postavili planirani zadatak u crontab, prvo pokrenite uređivač crontab pomoću naredbe u nastavku:
$ crontab -eSada na kraju datoteke možete dodati unos u sljedećem formatu:
minuta sat dan mjesec radni dan / puna / staza / do / skripta.shGdje:
- minuta: bilo koja vrijednost u rasponu od 0 do 59
- sat: bilo koja vrijednost u rasponu od 0 do 23, 0 je ponoć
- dan: bilo koja vrijednost u rasponu od 1 do 31
- mjesec: bilo koja vrijednost u rasponu od 1 do 12
- radnim danom: bilo koja vrijednost u rasponu od 0 do 6, 0 je nedjelja
Donji unos crontab snimit će snimak zaslona radne površine i pohraniti ga u vaš kućni direktorij 2. ožujka u 15:13 sati, plus svaki utorak u ožujku u 15:13 sati.
13 15 2 3 2 skrotDa biste popisali sve unose crontab, upotrijebite naredbu u nastavku:
$ crontab -lJoš primjera
Cron zadatke možete najbolje objasniti kroz primjere, pa je u nastavku nekoliko primjera koji će povremeno snimati snimke zaslona radne površine i pohranjivati ih u matičnu mapu.
Osim pet varijabli rasporeda, cron također koristi neki poseban niz za planiranje poslova. Ovi nizovi su:
- @hourly: posao se izvodi svaki sat
- @daily / @midnight: posao se pokreće svaki dan
- @ tjedno: posao se izvodi jednom tjedno
- @monthly: posao se izvodi jednom mjesečno
- @godine / @ručno: posao se izvodi jednom godišnje
- @reboot: posao se izvodi jednom prilikom svakog ponovnog pokretanja / prijave
Unos crontab u nastavku napravit će snimku zaslona jednom prilikom svakog ponovnog pokretanja:
@reboot skrotMožete zamijeniti “@reboot” bilo kojim drugim gore spomenutim posebnim žicama.
Upotreba zvjezdice ili zamjenskog znaka umjesto bilo koje od pet varijabli ponovit će posao na svim novim primjercima te varijable. Unos u nastavku snimit će snimku zaslona svake minute:
* * * * * SkrotSvaki sat:
0 * * * * skrotSvakog dana u 18:00 sati:
0 18 * * * skrotSvaki mjesec 6. u 18:00 sati:
0 18 6 * * skrotKoristite "/" za pokretanje skripte u fiksnom periodičnom intervalu od 30 minuta (izvodi se svakih 30 minuta):
* / 30 * * * * skrotVarijable odvojene zarezom možete koristiti za definiranje ponavljanja izvršavanja skripte u redovitim intervalima. Primjer u nastavku snimit će snimak zaslona radne površine svake 1., 4. i 5. minute novog sata.
1,4,5 * * * * skrotProvjera Crontab unosa
Definiranje unosa u crontabu može biti nezgodno, ali otklanjanje pogrešaka ili provjera rade li u ispravnim vremenskim oznakama još je nezgodnije. Jedna od mogućnosti je korištenje virtualnog stroja i bilježenje vremenskih oznaka skripte koja se povremeno izvodi na cron poslu tako što uključuje nešto poput naredbe „datum“ i preusmjerava izlaz u tekstualnu datoteku. Međutim, bolje rješenje je korištenje jedne od brojnih internetskih usluga testiranja cron poslova dostupnih na webu. Preporučujem dostupnost web stranice cron tester ovdje pokušaj.
Zaključak
Pokretanje cron poslova izvrstan je način za automatizaciju ponovljenih zadataka, posebno na poslužiteljima. Alat je izuzetno moćan i prilagodljiv. Međutim, važno je utvrditi da vaša definicija planera radi ispravno, posebno ako postoje zadaci kritični za misiju.