11 Primjeri zadataka planiranja Cron-a u Linuxu


U ovom članku ćemo pregledati i vidjeti kako možemo zakazati i pokrenuti Linux zadatke u pozadini automatski u redovnim intervalima koristeći naredbu Crontab.

Ručno rješavanje čestih poslova je zastrašujući zadatak za administratore sistema i takvi zadaci se mogu zakazati i pokrenuti automatski u pozadini bez ljudske intervencije pomoću cron demona u Linuxu ili operativnom sistemu sličnom Unixu.

Na primjer, možete automatizirati sigurnosnu kopiju Linux sistema, planirati ažuriranja i sinhronizaciju datoteka i još mnogo toga koristeći Cron demon, koji se koristi za pokretanje zakazanih zadataka iz komandne linije ili koristite online alate za generiranje cron poslova.

Cron se budi svake minute i provjerava zakazane zadatke u brojčanom broju – Crontab (CRON TABle) je tabela u kojoj možemo zakazati takve vrste ponovljenih zadataka .

Savjeti: Svaki korisnik može imati vlastiti crontab za kreiranje, mijenjanje i brisanje zadataka. Podrazumevano je cron omogućen za korisnike, međutim, možemo ograničiti korisnike dodavanjem unosa u datoteku /etc/cron.deny.

Crontab u Linuxu

Datoteka Crontab se sastoji od komandi po redu i zapravo ima šest polja koja su odvojena razmakom ili tabulatorom. Početnih pet polja predstavlja vrijeme za izvršavanje zadataka, a posljednje polje je za komandu.

  • Minuta (zadržite vrijednosti između 0-59)
  • Sat (drži vrijednosti između 0-23)
  • Dan u mjesecu (zadrži vrijednosti između 1-31)
  • Mjesec u godini (zadržavanje vrijednosti između 1-12 ili jan-decembar, možete koristiti prva tri slova naziva svakog mjeseca, tj. jan ili jun<.)
  • Dan u sedmici (drži vrijednosti između 0-6 ili ned-sub, ovdje također možete koristiti prva tri slova imena svakog dana, tj. ned ili srijeda<.)
  • Naredba – /put/do/komanda ili skripta koju želite zakazati.

1. Navedite Crontab unose

Navedite ili upravljajte zadatkom pomoću naredbe crontab s opcijom -l za trenutnog korisnika.

crontab -l

00 10 * * * /bin/ls >/ls.txt

2. Uredite Crontab unose

Da uredite unos crontab, koristite -e opciju prikazanu ispod. Primjer ispod će otvoriti zakazane poslove u uređivaču VI. Napravite potrebne promjene i prestanite pritiskati tipke :wq koje automatski pohranjuju postavke.

crontab -e

3. Navedite zakazane Cron poslove korisnika

Za popis zakazanih poslova određenog korisnika pod nazivom tecmint koristeći opciju kao -u (Korisnik) i -l (Lista).

crontab -u tecmint -l

no crontab for tecmint

Napomena: Samo root korisnik ima potpune privilegije da vidi crontab unose drugih korisnika. Normalni korisnici ne mogu vidjeti druge.

4. Uklonite Crontab unos

Oprez: Crontab sa parametrom -r će ukloniti kompletne zakazane poslove bez potvrde od Crontaba. Koristite opciju -i prije nego što izbrišete korisnikov crontab.

crontab -r

5. Pitajte prije brisanja Crontab-a

crontab sa -i opcijom će od vas zatražiti potvrdu prije nego što izbrišete korisnikov crontab.

crontab -i -r

crontab: really delete root's crontab?

6. Dozvoljeni posebni znakovi (*, -, /, ?, #)

  • Zvjezdica(*) – Uskladite sve vrijednosti u polju ili bilo koju moguću vrijednost.
  • Crta(-) – Za definiranje raspona.
  • kosa crta (/) – 1. polje /10 što znači svakih deset minuta ili povećanje raspona.
  • Zarez (,) – Za odvajanje stavki.

7. Sistemski Cron raspored

Administrator sistema može koristiti unaprijed definirani cron direktorij kao što je prikazano ispod.

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

8. Zakažite posao na određeno vrijeme

Dolje navedeni poslovi brišu prazne datoteke i direktorije sa /tmp u 12:30 svakog dana. Morate spomenuti korisničko ime da biste izvršili naredbu crontab. U primjeru ispod, root korisnik izvodi cron posao.

crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

9. Specijalni nizovi za zajednički raspored

@reboot

Komanda će se pokrenuti kada se sistem ponovo pokrene.

@daily

Jednom dnevno ili možete koristiti @midnight.

@weekly

Jednom sedmično.

@yearly

Jednom godišnje. možemo koristiti i ključnu riječ @annually.

Potrebno je zamijeniti pet polja cron naredbe ključnim riječima ako želite koristiti isto.

10. Više naredbi s dvostrukim ampersandom (&&)

U donjem primjeru, command1 i command2 se izvode svakodnevno.

crontab -e

@daily <command1> && <command2>

11. Onemogućite obavještenja putem e-pošte.

Podrazumevano, cron šalje poštu na korisnički nalog koji izvršava cronjob. Ako želite da ga onemogućite, dodajte svoj cron posao sličan primjeru ispod. Korištenje opcije >/dev/null 2>&1 na kraju datoteke će preusmjeriti sav izlaz cron rezultata pod /dev/null.

[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1

zaključak: Automatizacija zadataka može nam pomoći da svoje zadatke obavljamo na bolje načine, bez grešaka i efikasnije. Možete pogledati stranicu priručnika crontab-a za više informacija tako što ćete upisati naredbu 'man crontab' u svoj terminal.