Kako kreirati i upravljati Cron poslovima na Linuxu


automatizirati zadatke sigurnosnog kopiranja, čišćenje direktorija, obavijesti itd.

Cron poslovi se pokreću u pozadini i stalno provjeravaju /etc/crontab fajl, i /etc/cron.*/ i /var/spool/cron/ direktoriji. Cron fajlovi ne bi trebalo da se uređuju direktno i svaki korisnik ima jedinstveni crontab.

Kako onda trebate kreirati i uređivati cron poslove? Sa crontab komandama. crontab je metoda koju koristite za kreiranje, uređivanje, instaliranje, deinstaliranje i listanje cron poslova.

Komanda za kreiranje i uređivanje cron poslova je ista i jednostavna. A što je još kul je to što ne morate ponovo pokretati cron nakon kreiranja novih datoteka ili uređivanja postojećih.

$ crontab -e

Cron sintaksa

Baš kao i sa bilo kojim jezikom, rad sa cron-om je mnogo lakši kada razumete 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: Raspon dana: 0 – 31
  • D: Raspon mjeseci: 0 – 12
  • E: Raspon dana u sedmici: 0 – 7. Počevši od ponedjeljka, 0 ili 7 predstavlja nedjelju
  • USERNAME: zamijenite ovo svojim korisničkim imenom
  • /path/to/command – Ime skripte ili naredbe koju želite zakazati

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

  1. Zvjezdica (*): specificira sve moguće vrijednosti za polje
  2. Zarez (,): specificira listu vrijednosti
  3. Crta (-): specificira raspon vrijednosti
  4. Razdjelnik (/): specificira vrijednost koraka

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

Primjeri Cron poslova

Prvi korak za pokretanje cron komandi je instaliranje vašeg crontab-a sa naredbom:

# crontab -e

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

0 3 * * * /root/backup.sh

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

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

Pokrenite /scripts/phpscript.php u 22 sata tokom sedmice:

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

Pokreni Linux komandu 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

Stringovi u Crontabu

Nizovi su među omiljenim stvarima programera jer pomažu u uštedi vremena eliminirajući ponavljajuće pisanje. Cron ima specifične nizove koje možete koristiti za brže kreiranje 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 svake sedmice, tj. “0 0 * * 0“
  5. @monthly: Pokreni jednom mjesečno, tj. “0 0 1 * *“
  6. @godišnje: Pokreni jednom svake godine, tj. “0 0 1 1 *“
  7. @godišnje: isto kao @godišnje
  8. @reboot: Pokreni jednom pri svakom pokretanju

Na primjer, ovako pravite sigurnosnu kopiju vašeg sistema svaki dan:

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

U ovom trenutku imate sve što vam je potrebno za kreiranje i upravljanje sistemskim zadacima koristeći Cron. Sada možete početi da postavljate i održavate nekoliko okruženja koristeći planirane komande.

Koliko ste korisnik Cron-a? I postoje li neki detalji kojima možete doprinijeti članku? Okvir za diskusiju je ispod.

Kada dovoljno razumijete kako Crontab funkcionira, možete koristiti ove sjajne uslužne programe Crontab generatora 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.