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.