Posao Cron ili Cron vremenski je raspoređivač uobičajen u Linux / Unix sustavima. Planira da se određeni korisnički zadaci povremeno izvode u određenom datumu, vremenu ili intervalima. Većina ovih zadataka su skripte za izvršavanje funkcija poput sigurnosnih kopija i više. Da bismo stvorili ove cron poslove, koristimo naredbe crontab. Crontab je UNIX naredba / uslužni program koji se koristi za stvaranje i upravljanje cron poslovima.
Kao što ćete vidjeti u nastavku, stvaranje i uređivanje cron posla prilično je jednostavno. Nevjerojatan dio je taj da ne trebate ponovno pokretati cron, pa čak ni računalo nakon stvaranja ili uređivanja cron posla. Samo spremite datoteku i spremni ste.
Uobičajena upotreba Cron Jobs-a
- Postavljanje hardverskog vremena: Mrežni protokol vremena koriste mnoga računala za postavljanje sistemskog vremena, ali ne postavlja hardversko vrijeme. Pomoću crona možete postaviti hardversko vrijeme na temelju sistemskog vremena.
- Zakazivanje zadataka i pokretanje programa koji izvode dnevne programe: Pomoću usluge cron možete pokretati mnoge sistemske usluge koje trebaju svakodnevne upite poput Logwatch-a.
- Automatsko čišćenje direktorija, pokretanje sigurnosnih kopija programa i još mnogo toga.
Osnovni dijelovi naredbe cron
Standardna sintaksa crontaba je sljedeća:
a b c d e USERNAME / izlaz / put / do / skripta izlaz
1.Vrijeme i datum, zajedno s tim koliko će se posao ponavljati, navedeni su u pet polja:
-
- a: Zapisnici: (u rasponu od 0 - 59)
- b: Sati: (u rasponu od 0 - 23 )
- c: Dana: (u rasponu od 0 - 31 )
- d: Mjeseci: (u rasponu od 0 - 12 )
- e: Dani u tjednu: (u rasponu od 0 - 7. )
- a: Zapisnici: (u rasponu od 0 - 59)
Napomena: Dani započinju s ponedjeljkom. 0 i 7 predstavljaju nedjelju
2. KORISNIČKO IME
: Ne zaboravite ovo zamijeniti svojim korisničkim imenom
3. Specifično mjesto i skripta koje cron treba izvršiti navedeni su trećim segmentom:
/ put / do / skripte
4. Posljednji odjeljak definira obavijest korisniku nakon završetka posla kao način praćenja zadataka:
izlaz
Međutim, vaša je poštanska pošta možda puna manjih zadataka koji se često kanaliziraju. Da biste to izbjegli, možete onemogućiti automatski izlaz e-pošte dodavanjem niza u naredbu cron:
> / dev / null 2> & 1 e.g a b c d e KORISNIČKO IME / put / do / skripta> / dev / null 2> & 1
Uz to, cron koristi još četiri vrijednosti korištene za specificiranje višestrukih vrijednosti u polju. Oni su:
- Zvjezdica (*): Odnosi se na sve vrijednosti u polju.
- Zarez (,): Koristite za odvajanje popisa vrijednosti u naredbi cron.
- Crtica (-): Odredite raspon vrijednosti.
- Kosa crta (/): dijeli vrijednost u različite korake.
Postavljanje cron poslova
Naredbe crontab odgovorne su za stvaranje i uređivanje cron poslova, jer se datoteke cron ne smiju izravno uređivati. Crontab definira kako možete stvoriti, urediti, popisati, otkloniti pogreške, instalirati i deinstalirati cron zadatke.
Prije nego što započnete s cron poslovima, neophodno je osigurati da su vaša radna površina ili poslužitelj Linux ažurirani izvršavanjem naredbi u nastavku:
sudo apt ažuriranje sudo apt nadogradnja
Ako na vašem sustavu nije instaliran cron paket, instalirajte ga naredbom u nastavku:
sudo apt-get instalirati cron
Kako urediti datoteku crontab?
Da biste dovršili postupak, morat ćete konfigurirati cron posao. Korisnik prijavljen kada se stvori cron posao automatski postaje vlasnik. To se može promijeniti stvaranjem vlasnika posla koji će biti zadužen za upravljanje cron poslom, kao što ćemo vidjeti u ovom postu.
Da biste otvorili konfiguracijsku datoteku crontab za trenutno prijavljenog korisnika, izvršite naredbu u nastavku:
crontab -e
Sustav će vas zatražiti da odaberete odgovarajući uređivač. U našem ćemo slučaju odabrati prvu opciju (nano editor).
Možete dodati jedan planirani zadatak u redak prema vašim željama.
Nakon dodavanja zadataka, završite spremanjem datoteke i izađite. Sve pružene upute čitati će i izvršavati cron demon. Promjene će se primijeniti čak i bez ponovnog pokretanja sustava jer se spremište automatski ažurira.
Uredi crontab za drugog korisnika
Crontab se može uređivati za različite korisnike pomoću naredbe u donjoj sintaksi:
crontab -u drugo_korisničko ime -e
Kako se koriste posebni znakovi u naredbama crontab
Znakovi i operatori diktiraju veću prilagodbu vašeg sustava jer proširuju mogućnosti cron zadatka.
- Kosa crta koristi se za dijeljenje vremenskog niza u određene korake. Na primjer, za pokretanje sigurnosne kopije svakih 30 minuta možemo koristiti:
* / 30 * * * *
- Zvezdica (*) se koristi za izvršavanje svih vrijednosti koje treba izvršiti. Na primjer:
* / 15 ***
- Crtica (-) koristi se za određivanje opsega aktivnosti, poput broja dana. Za
primjerice, pokrenut ćemo kôd u 6 sati svakog radnog dana, koristit ćemo;
0 6 * * 1-5 / root / sigurnosna kopija.sh
Ovdje 06 označava 6:00, a 1-5 označava broj dana (od ponedjeljka do petka).
- Zarez navodi pojedinačne instance kada bi se kôd trebao pokrenuti:
0 4 * * 2,4 / korijen / sigurnosna kopija.sh
Gornja naredba izvršavala bi vaš kod skripte u 4 ujutro u utorak i četvrtak.
- Također možete kombinirati razne zamjenske znakove da biste još više prilagodili svoje naredbe. Na primjer, za izvršavanje naše skripte svaki drugi dan u 35 minuta iza sata, možemo koristiti naredbu u nastavku:
35 1-23 / 2 * * * / put / do / skripta / skripta.sh
1-23 određuje raspon sati, / 2 postavlja interval na svaki drugi sat.
Opcije Cron
- Navedi sve cron poslove
Možda ćete htjeti navesti cron poslove u vašem sustavu bez otključavanja datoteke konfiguracije crontab. To se može učiniti pokretanjem terminala i upisivanjem naredbe u nastavku:
crontab -l
Ta naredba navodi sve cron poslove koji su prisutni u vašem sustavu.
- Izbriši sve zadatke crontaba
Da biste izbrisali sve naredbe crontab, možete koristiti naredbu u nastavku:
crontab -r
- Izbrišite cron posao za drugog korisnika.
crontab -r -u drugo-korisničko ime
Koristite žice u Crontabu
Nizovi su izuzetno korisni alati za programere jer izbjegavaju ponavljano pisanje segmenata koda. Srećom, crontabs podržavaju razne vrijednosti nizova. Oni uključuju:
@ satno:
-isto kao i - "0 * * * *" (Izvodi se svaki put sat)@ponoć:
-isto kao i - "0 0 * * *" (Izvodi se svaki put dan)@dnevno:
isto kao i ponoć@tjedni:
-isto kao i - „0 0 * * 0“ (Izvodi se svaki put tjedan)@mjesečno:
-isto kao i - "0 0 1 * *" (Izvodi se svaki put mjesec)@ godišnje:
-isto kao i - "0 0 1 1 *" (Izvodi se jednom svaki godina)@godišnje:
slično @ godišnje@ponovno podizanje sustava:
Izvršeno jednom nakon svakog ponovnog pokretanja / ponovnog pokretanja / pokretanja.
Dobar primjer; ako imate skriptu za sigurnosnu kopiju koju želite pokretati svaki dan, upotrijebite naredbu u nastavku:
@daily / path / to / backup_script.sh
Primjeri cron poslova
Evo popisa osnovnih cron poslova koji se mogu koristiti za početak:
-
- Da biste pokrenuli skriptu svake minute:
* * * * * / vaš / skripta / put.sh
- Da biste pokrenuli skriptu svakih 40 minuta:
40 * * * * / vaša / skripta / put.sh
- Da biste pokrenuli skriptu svakog sata:
0 * * * * / vaš / skripta / put.sh
- Da biste pokrenuli skriptu svake ponoći:
0 0 * * * / vaš / skripta / put.sh
- Da biste pokrenuli skriptu svake 23 minute nakon ponoći, 02:00 i 04:00 svaki dan:
23 0-23 / 2 * * * / vaša / skripta / put.sh
- Za pokretanje skripte u 4.05 svake nedjelje.
5 4 * * sun / your / script / path.sh
- Za pokretanje skripte u 22 sata tijekom tjedna.
0 22 * * 1-5 / vaš / skripta / put.sh
- Za pokretanje scenarija 1. prosinca - u ponoć.
0 0 0 12 * / your / script / path.sh
- Za pokretanje scenarija u subotu u ponoć.
0 0 * * 6 / your / script / path.sh
- Za pokretanje skripte Svaki sat.
0 * * * * / vaš / skripta / put.sh
- Da biste pokrenuli skriptu svake minute:
S ovim osnovnim primjerima ćete dublje razumjeti slijed i način na koji ga je moguće izmijeniti.
Ograničavanje Cron pristupa
Vidimo da cron poslovi mogu vrlo dobro doći, posebno kada želite automatizirati svoje zadatke. Međutim, može biti i rizično ako sustav dopušta bilo kojem korisniku da stvori cron posao. Čak i ako to ne utječe na osobne podatke, neki cron poslovi mogu potrajati prilično veliku količinu sistemskih resursa, što zaostaje za računalom. Da bi izbjegao takve scenarije, administrator sustava (root korisnik) može stvoriti / etc / cron.dopustiti
ili / etc / cron.poricati
datoteka koja sadrži samo korisnike koji to mogu 'stvori / ne-stvori' cron posao.
The / etc / cron.dopustiti
datoteka sadrži korisnike koji mogu stvarati, uređivati, prikazivati ili uklanjati crontab datoteke. Ako ova datoteka ne postoji, svi korisnici mogu stvarati i upravljati cron poslovima osim onih u / etc / cron.poricati
datoteka. Ako nijedna od ovih datoteka nije prisutna, za izvršavanje naredbe crontab potrebne su privilegije korisnika.
Sad kad ste spriječili korisnike koji nisu root da kreiraju cron poslove ako su ih već imali, možete razmisliti o dodavanju njihovih cron poslova u korijensku datoteku crontab. Ali ovdje je zagonetka - dodavanjem njihovih cron poslova u korijenski crontab, zar to ne pokreće njihove cron poslove kao root? Pa, ovdje dolazi do važnosti polja USERNAME o kojem smo razgovarali gore u sintaksi naredbe cron. Na primjer, naredba u nastavku:
0 * * * * fosslinux / put / do / skripta.sh
Izvršit će se kao korisnički "fosslinux" cron posao, a ne kao root korisnik.
Zaključak
Sada imate jasan vodič za korištenje Cron poslova za automatizaciju različitih zadataka u vašem sustavu. To vas ne bi trebalo zbuniti s aplikacijama za pokretanje. Koristite gornje primjere da biste pokušali automatizirati jednostavne skripte. S vremenom možete kombinirati posebne likove i zamjenske kartice kako biste izvršavali puno svjetovnije zadatke. Ako tek započinjete, bilo bi sjajno pročitati naš post na tutorialu bash skriptiranja s primjerima koji će vam pomoći u stvaranju prve skripte.