Kako stvoriti i upravljati Cron poslovima na Linuxu


Cron je jedan od najkorisnijih Linuxovih alata i favorit programera jer vam omogućuje pokretanje automatiziranih naredbi u određenim razdobljima, datumima i intervalima koristeći skripte opće namjene i skripte specifične za zadatak. S obzirom na taj opis, možete zamisliti kako ga administratori sustava koriste za automatiziranje zadataka sigurnosne kopije, čišćenje direktorija, obavijesti itd.

Cron poslovi rade u pozadini i neprestano provjeravaju datoteku /etc/crontab i /etc/cron.*/ i /var/spool/cron/ direktorije. Cron datoteke se ne bi trebale uređivati izravno i svaki korisnik ima jedinstveni crontab.

Kako biste onda trebali stvarati i uređivati cron poslove? S crontab naredbama. Crontab je metoda koju koristite za stvaranje, uređivanje, instaliranje, deinstalaciju i popis cron poslova.

Naredba za kreiranje i uređivanje cron poslova je ista i jednostavna. A ono što je još bolje je to što ne morate ponovno pokretati cron nakon stvaranja novih datoteka ili uređivanja postojećih.


crontab -e

Cron sintaksa

Baš kao i s bilo kojim drugim jezikom, rad s cronom puno je lakši kada razumijete njegovu sintaksu i postoje 2 formata koja biste trebali znati:


A B C D E USERNAME /path/to/command arg1 arg2
OR
A B C D E USERNAME /root/backup.sh

Objašnjenje gornje cron sintakse:

  • A: Raspon minuta: 0 – 59
  • B: Raspon sati: 0 – 23
  • C: Dani raspon: 0 – 31
  • D: Mjeseci raspon: 0 – 12
  • E: Dani u tjednu raspon: 0 – 7. Počevši od ponedjeljka, 0 ili 7 predstavlja nedjelju
  • KORISNIČKO IME: zamijenite ovo svojim korisničkim imenom
  • /path/to/command – naziv skripte ili naredbe koju želite zakazati

To nije sve Cron koristi 3 simbola operatora koji vam omogućuju da navedete više vrijednosti u polju:

  1. Zvjezdica (*): određuje sve moguće vrijednosti za polje
  2. Zarez (,): određuje popis vrijednosti
  3. Crtica (-): određuje raspon vrijednosti
  4. Razdjelnik (/): određuje vrijednost koraka

Sada kada znate Cronovu sintaksu i operatore, pogledajmo neke cron primjere.

Primjeri cron poslova

Prvi korak u pokretanju cron naredbi je instaliranje vašeg crontaba pomoću naredbe:


crontab -e

Pokrenite /root/backup.sh u 3 ujutro svaki dan:


0 3 * * * /root/backup.sh

Pokrenite script.sh u 16:30 svakog drugog u mjesecu:

30 16 2 * * /path/to/script.sh

Pokrenite /scripts/phpscript.php u 22 sata tijekom tjedna:

0 22 * * 1-5 /scripts/phpscript.php

Pokrenite perlscript.pl u 23 minute nakon ponoći, 2 ujutro i 4 ujutro, svaki dan:

23 0-23/2 * * * /path/to/perlscript.pl

Pokrenite Linux naredbu u 04:05 svake nedjelje:

5 4 * * sun /path/to/linuxcommand

Cron opcije

Navedite cron poslove.


crontab -l
OR
crontab -u username -l

Izbrišite sve crontab poslove.

crontab -r

Izbrišite Cron posao za određenog korisnika.


crontab -r -u username

Žice u Crontabu

Nizovi su među omiljenim stvarima programera jer pomažu uštedjeti vrijeme eliminirajući pisanje koje se ponavlja. Cron ima specifične nizove koje možete koristiti za brže stvaranje naredbi:

  1. @hourly: Pokreni jednom svaki sat, tj. “0 * * * *
  2. @midnight: Pokreni jednom svaki dan, tj. “0 0 * * *
  3. @daily: isto kao ponoć
  4. @weekly: Pokreni jednom tjedno, tj. “0 0 * * 0
  5. @monthly: Pokreni jednom svaki mjesec, tj. “0 0 1 * *
  6. @annually: Pokrenite jednom svake godine, tj. “0 0 1 1 *
  7. @yearly: isto kao @annually
  8. @reboot: Pokreni jednom pri svakom pokretanju

Na primjer, ovako možete svaki dan sigurnosno kopirati svoj sustav:

@daily /path/to/backup/script.sh

U ovom trenutku imate sve što vam je potrebno za stvaranje i upravljanje sistemskim zadacima koristeći Cron. Sada možete početi postavljati i održavati nekoliko okruženja koristeći zakazane naredbe.

Koliko ste korisnik Crona? I postoje li detalji kojima možete doprinijeti članku? Okvir za raspravu je ispod.

Kada dovoljno razumijete kako Crontab radi, možete koristiti ove izvrsne Crontab generatore za besplatno generiranje crontab linija.

Također, ovdje možete pročitati Ubuntuov članak o tome kako koristiti Cron. Ima resurse koji bi vam mogli biti korisni.