U ovom uputstvu pružit ćemo vam osnovno uvođenje svega što trebate razumjeti za zakazivanje posla s cron-om. To uključuje osnovnu sintaksu cron-a, uređivanje crontab datoteke, planiranje posla s cron-om s nekoliko primjera, prikaz cron-a itd.
Osnove Cron Joba
Razumijemo neke osnove cron posla.
Što je Crond?
Crond je demon u sustavu Linux koji radi u pozadini i svake minute provjerava postoji li u to vrijeme zakazan neki posao. Ako postoji, obavlja taj posao, inače ostaje neaktivan.
Sintaksa Cron Job
Sintaksa za cron posao je sljedeća:
* * * * * naredba / skriptaS lijeve strane:
- Prva * odgovara zapisnicima (0-59)
- Drugi * odgovara satima (0-23)
- Treći * odgovara danu u mjesecu (1-31)
- Četvrti * odgovara mjesecu u godini (1-12)
- Peti * odgovara danu u tjednu (0-6, od nedjelje do subote)
Da biste odredili više vrijednosti u polju, upotrijebite sljedeće simbole operatora:
- Zvjezdica (*): Da biste odredili sve moguće vrijednosti za polje
- Crtica (-): Do sodrediti niz vrijednosti
- Zarez (,): Da biste odredili popis vrijednosti
- Separator (/): Da biste odredili vrijednost koraka
Uređivanje datoteke Crontab
Crontab je datoteka koja sadrži predviđene poslove u određenoj sintaksi. Postoje dvije vrste crontab datoteka; jedan za cron zadatke specifične za sustav, a drugi za cron zadatke specifične za korisnika.
Poslovi cron sustava
Cron poslovi za cijeli sustav smješteni su u / etc / crontab turpija i / etc / cron.d direktorij, i oni se provode / etc / cron.satno, / etc / cron.dnevno, / etc / cron.tjedni i / etc / cron.mjesečno. Samo administrator sustava može pristupiti tim datotekama.
Administrator sustava može definirati cron posao pomoću sljedeće naredbe:
$ nano / etc / crontabEvo sintakse posla u / etc / crontab datoteka:
# min hr dayofmonth month dayofweek naredba korisničkog imena* * * * * korisnik1 ifconfig
Korisnički specifični cron poslovi
Korisnički specifični cron poslovi nalaze se u /var / spool / cron / crontabs imenik. Iako ove zadatke možete uređivati ručno, preporučuje se uređivanje tih poslova pomoću naredbe crontab -e.
Standardni korisnik može definirati cron posao pomoću sljedeće naredbe:
$ crontab -eNa primjer, ako ste prijavljeni kao "test" korisnik, izvođenjem naredbe crontab -e uredit će datoteku crontab za "test" korisnika. Slično tome, ako ste prijavljeni kao root korisnik, naredba crontab -e uredit će datoteku crontab za root korisnika.
U Terminalu izdajte naredbu za uređivanje datoteke crontab za bilo kojeg drugog korisnika:
$ sudo crontab -uNa primjer, ako ste prijavljeni kao korisnik „test1“ i želite urediti datoteku crontab za korisnika „test2“, naredba bi bila:
$ sudo crontab -u test2 -eEvo sintakse cron posla koja se može dodati u datoteku crontab:
# m h dayofmonth month dayofweek naredba* * * * * ifconfig
Na poslovima specifičnim za korisnika možete vidjeti da nije prijavljeno "korisničko ime".
Crontab naredbe
Naredba crontab koristi se za uređivanje, popis i uklanjanje cron poslova:
- crontab -e Za uređivanje datoteke korisnika crontab
- crontab -l Za prikaz sadržaja datoteke crontab
- crontab -u [korisničko ime] Za uređivanje crontab datoteke bilo kojeg drugog korisnika
- crontab -r Da biste uklonili datoteku crontab trenutnog korisnika
- crontab -i Za prikaz upita prije uklanjanja datoteke crontab trenutnog korisnika
Zakazivanje posla s Cronom
S Cronom možete pokrenuti posao u određeno vrijeme, datum i interval s minimalnom jedinicom u minutama, tj.e., možete voditi posao svake minute.
Da biste zakazali posao s cron-om, otvorite datoteku crontab metodom razmotrenom u prethodnom odjeljku. Jednom kada otvorite datoteku crontab, od vas će se zatražiti da odaberete uređivač teksta. Upišite broj za odabir željenog uređivača teksta. Pomaknite se prema dnu datoteke i dodajte poslove u gore opisanu sintaksu. Svaki redak u datoteci navodi jednu naredbu. Prvih pet unosa u retku određuju zakazano vrijeme, a zadnji unos koju naredbu ili skriptu treba pokrenuti.
Primjer:
Sljedeći redak u datoteci crontab rasporedit će zadatak crona za pokretanje naredbe / skripte svake 30. minute u pet sati svakog dana u tjednu od ponedjeljka do subote.
* / 30 5 * * 1-6 naredba / skripta
Zapisnik
U ovom polju specificiramo minute kada želimo da se izvrši naredba. Navedeno je od 0 do 59. Znak * u ovom polju znači pokretati posao svake minute. U gornjem crontab retku, * / 30 govori cron poslu da izvodi navedenu naredbu / skriptu svakih 30 minuta.
Sati
U ovom polju određujemo sate kada želimo izvršiti naredbu. Navedeno je od 0 do 23. Znak * u ovom polju znači pokretanje posla svakih sat vremena. U gornjem crontab retku, vrijednost 5 govori cron poslu da izvodi navedenu naredbu / skriptu svakih pet sati.
Dan u mjesecu
U ovom polju određujemo određene dane u mjesecima kada želimo izvršenje naredbe. Navedeno je od 1 do 31. * U ovom polju znači svaki dan. U gornjem crontab retku, * govori cron poslu da izvršava navedenu naredbu / skriptu svaki dan.
Mjesec u godini
U ovom polju navodimo određene mjesece kada želimo da se naredba izvrši. Navedeno je od 1 do 12. Znak * u ovom polju znači svaki mjesec. U gornjem crontab retku, * govori cron poslu da pokreće navedenu naredbu / skriptu svakog mjeseca.
Dan u tjednu
U ovom polju određujemo određene dane u tjednu kada želimo izvršenje naredbe. Navedeno je od 0 do 6 od nedjelje do subote (0 za nedjelju i 6 za subotu). * U ovom polju znači svaki dan u tjednu. U gornjem crontab retku, * govori cron poslu da izvrši navedenu naredbu / skriptu svaki dan u tjednu.
Primjeri Cron Jobs-a
Evo nekoliko primjera cron poslova:
Pokrenite cron posao svakih 15 minuta
Da biste zakazali pokretanje cron posla svakih 15 minuta, dodajte donji redak u datoteku crontab:
* / 15 * * * * naredba / skriptaPokrenite cron posao svaki dan u 5 sati ujutro
Da biste zakazali pokretanje posla cron svakog dana u 5 sati ujutro, dodajte donji redak u datoteku crontab:
0 5 * * * naredba / skriptaPokrenite cron posao svaki dan u 17 sati
Da biste zakazali pokretanje posla cron svakog dana u 17 sati, dodajte donji redak u datoteku crontab:
0 17 * * * naredba / skriptaPokrenite cron posao prvog dana svakog mjeseca u 9 sati ujutro
Da biste zakazali pokretanje cron posla prvog dana svakog mjeseca u 9 sati, dodajte donji redak u datoteku crontab:
0 9 1 * * naredba / skriptaPokrenite cron posao svakog sata svakog 15. ožujka
Da biste zakazali posao cron svakog sata svakog 15. ožujka, dodajte sljedeći redak u datoteku crontab:
0 * 15 3 * naredba / skriptaPokrenite cron posao svakih 5 sati
Da biste zakazali cron posao svakih 5 sati, dodajte sljedeći redak u crontab datoteku:
0 * / 5 * * * naredba / skriptaPokrenite cron posao svakih 15 minuta
Da biste zakazali pokretanje cron posla svakih 15 minuta, dodajte donji redak u datoteku crontab:
* / 15 * * * *Korištenje žica
Sljedeći se nizovi također mogu koristiti za definiranje posla:
- @ satno: Za izvršavanje posla jednom na sat, tj.e., “0 * * * *“
- @ponoć: Za izvršavanje posla jednom dnevno, tj.e., “0 0 * * *“
- @dnevno: isto kao i ponoć
- @tjedni: Za izvršavanje posla jednom tjedno, tj.e., “0 0 * * 0“
- @mjesečno: Za izvršavanje posla jednom mjesečno, tj.e., “0 0 1 * *“
- @ godišnje: Za izvršavanje posla jednom godišnje, tj.e., “0 0 1 1 *“
- @godišnje: isto kao i @ godišnje
- @ponovno podizanje sustava: Izvršiti posao jednom prilikom svakog pokretanja
Na primjer, za pokretanje skripte ili naredbe svaki tjedan unos u datoteku crontab bio bi:
naredba / skripta @weeklyUnaprijed definirani Cron direktoriji
U Linuxu postoje neki unaprijed definirani cron direktoriji u kojima se pohranjene skripte automatski izvršavaju. Ako bilo koju skriptu postavimo ispod ovih direktorija, ona će se automatski izvršiti u konfigurirano vrijeme.
- / etc / cron.dnevno
- / etc / cron.satno
- / etc / cron.mjesečno
- / etc / cron.tjedni
Na primjer, da biste izvršili skriptu jednom mjesečno, morat ćete je smjestiti u / etc / cron.mjesečno.
Pogledajte Cron Jobs
Pregledajte poslove za trenutnog korisnika
Upotrijebite sljedeću naredbu za prikaz svih planiranih cron poslova za trenutnog korisnika:
$ crontab -lPregledajte poslove za korijenske korisnike
Da biste pregledali sve zakazane poslove korijenskog korisnika, izdajte sljedeću naredbu u terminalu:
$ mačka / etc / crontabMorat ćete se prijaviti kao root korisnik ili pokrenuti naredbu kao sudo.
Pregledajte poslove za ostale korisnike
Da biste pregledali sve zakazane poslove određenog korisnika, u terminalu izdajte sljedeću naredbu zamjenjujući
Da biste pokrenuli ovu naredbu, trebat će vam sudo privilegije.
Pogledajte cron poslove po satu
Da biste pregledali sve zadaće cron koji su konfigurirani za pokretanje svakog sata, u terminalu izdajte sljedeću naredbu:
$ ls -la / etc / cron.satnoPogledajte dnevne cron poslove
Da biste pregledali sve zadaće cron koji su konfigurirani za svakodnevno pokretanje, u terminalu izdajte sljedeću naredbu:
$ ls -la / etc / cron.dnevno/Pogledajte tjedne cron poslove
Da biste pregledali sve cron zadatke koji su konfigurirani za trčanje tjedno, u terminalu izdajte sljedeću naredbu:
$ ls -la / etc / cron.tjedni/Pogledajte mjesečne cron poslove
Da biste pregledali sve zadaće cron koji su konfigurirani za pokretanje mjesečno, u terminalu izdajte sljedeću naredbu:
$ ls -la / etc / cron.mjesečno/Izradi sigurnosnu kopiju svih Cron poslova
Preporučuje se čuvanje sigurnosne kopije svih cron poslova u datoteci kako biste se mogli oporaviti u slučaju brisanja. Da biste napravili sigurnosnu kopiju svih trenutnih poslova, upotrijebite operater preusmjeravanja za preusmjeravanje izlaza crontab -l u datoteku.
$ crontab -l> backup_cron.txtUklanjanje svih planiranih Cron poslova
Da biste uklonili sve zakazane cron poslove, upotrijebite zastavicu -r kako slijedi:
$ crontab -rDopuštenje za Cron
Pristup naredbi crontab možemo ograničiti kroz dvije datoteke: / itd. / cron.dopusti i / etc / cron.poricati.
- / etc / cron.dopustiti - Dodajte korisnike (po jednog u redak) kojima želite dopustiti pristup naredbama crontab. Ti korisnici mogu izvoditi poslove rasporeda.
- / etc / cron.poricati - Dodajte korisnike (po jednog u redak) kojima želite zabraniti pristup naredbama crontab. Ti korisnici ne mogu izvoditi planirane poslove.
Generatori sintakse Crontab
Postoje neke web stranice koje omogućuju generiranje sintakse za crontabs. Te web stranice olakšavaju generiranje izraza crontab bez potrebe za pamćenjem sintakse. Iako postoje različita web mjesta dostupna za generatore sintakse kao što je crontabgenerator.com, crontab-generator.org i cronmaker.com. Onaj koji mi je uglavnom draži i koji mi je od pomoći bio je crontab.guru. Na temelju korisničkog unosa generira izraz crontab koji možete kopirati i zalijepiti u datoteku crontab.
Zaključak
U ovom smo uputstvu objasnili osnove cron poslova, njegovu sintaksu i kako ga postaviti. Također smo razgovarali o tome kako pregledati cron poslove, stvoriti sigurnosnu kopiju i ukloniti ih ako više nisu potrebni.