Kako promijeniti fajl Linux Crontab za raspoređivanje

Uvod

Postoji demon u Linuxu koji se zove cron koji se koristi za pokretanje procesa u redovnim intervalima.

Način na koji to radi je provjera određenih foldera na vašem sistemu za pokretanje skripti. Na primjer, postoji folder nazvan /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly i /etc/cron.monthly. Postoji i datoteka koja se zove / etc / crontab.

Podrazumevano možete jednostavno postaviti skripte u odgovarajuće fascikle kako bi ih pokrenuli u redovnim intervalima.

Na primer otvorite prozor terminala (pritiskom na CTRL, ALT i T) i pokrenite sledeću naredbu ls :

ls / etc / cron *

Videćete listu programa ili skripti koji se pokreću na sat, dnevno, nedeljno i mesečno.

Problem sa ovim folderima je da su malo nejasni. Na primer, dnevno znači da će se skripta pokrenuti jednom dnevno, ali nemate kontrolu nad vremenom koje će scenario raditi tokom tog dana.

Tamo dolazi datoteka crontab-a.

Uredivanjem datoteke crontab možete dobiti skriptu ili program koji će se pokrenuti tačno datumom i vremenom kada želite da je pokrenete. Na primer, možda želite da napravite rezervne kopije datoteka svake noći u 18 sati.

Dozvole

Komanda crontab zahteva da korisnik ima dozvole za uređivanje crontab datoteke. U osnovi postoje dve datoteke koje se koriste za upravljanje dozvolama crontab-a:

Ako datoteka /etc/cron.allow postoji onda korisnik koji želi da uredi crontab datoteku mora biti u toj datoteci. Ako datoteka cron.allow ne postoji, ali postoji datoteka /etc/cron.deny onda korisnik ne sme da postoji u toj datoteci.

Ako postoje obe datoteke, onda /etc/cron.allow preklapa datoteku /etc/cron.deny.

Ako nijedna datoteka ne postoji onda zavisi od konfiguracije sistema da li korisnik može urediti crontab.

Root korisnik može uvek urediti crontab datoteku. Možete ili koristiti naredbu su da pređete na root korisnika ili sudo naredbu za pokretanje naredbe crontab.

Uređivanje datoteke Crontab

Svaki korisnik koji ima dozvole može kreirati sopstvenu datoteku crontab. Komanda cron u osnovi traži postojanje višestrukih crontab datoteka i protiče kroz sve.

Da biste proverili da li imate crontab datoteku pokrenite sledeću komandu:

crontab -l

Ako nemate datoteku crontab poruka će se pojaviti poruka "no crontab for ", u suprotnom će se prikazati crontab datoteka (ova funkcija se razlikuje od sistema do sistema, ponekad uopšte ne prikazuje ništa i druga puta prikazuje " nemojte uređivati ​​ovu datoteku ").

Da biste kreirali ili uredili crontab datoteku pokrenite sledeću komandu:

crontab -e

Podrazumevano ako ne postoji izabrani standardni editor, od vas će se tražiti da izaberete podrazumevani editor koji ćete koristiti. Lično volim da koristim nano jer je prilično jednostavan za korištenje i radi sa terminala.

Datoteka koja se otvori ima puno informacija, ali ključni dio je primer neposredno pre kraja sekcije komentara (komentari se označavaju linijama koje počinju sa #).

# mh dom mon dow komanda

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Na svakoj liniji crontab datoteke nalazi se 6 informacija:

Za svaku stavku (osim komande) možete odrediti znak za džoker. Pogledajte sledeći primer crontab linije:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

Ono što ukazuje gornja komanda je 30 minuta, 18 sati i bilo koji dan, mesec i dan sedmice pokrenite komandu da zipirate i zalepite početni direktorij u folder / var / backups.

Da biste dobili komandu koja se pokreće na 30 minuta svaki sat, mogu pokrenuti sledeću naredbu:

30 * * * * naredba

Da biste dobili naredbu za pokretanje svakog minuta pre 18 sati, mogu pokrenuti sledeću naredbu:

Komanda 18 * * *

Zbog toga morate biti pažljivi u postavljanju svojih naredbi za crontab.

Na primjer:

* * * 1 * komanda

Gornja komanda bi se održavala svakim minutom svakog sata svakog dana svake nedelje u januaru. Sumnjam da je to ono što želite.

Da biste pokrenuli komandu u 5 ujutru 1. januara, trebali biste da izvršite sljedeću komandu za datoteku crontab:

0 5 1 1 * naredba

Kako ukloniti datoteku Crontab

Većinu vremena nećete želeti da uklonite datoteku crontab, ali možda želite da uklonite neke redove iz datoteke crontab.

Međutim, ako želite ukloniti datoteku crontab svog korisnika pokrenite sledeću komandu:

crontab -r

Bezbedniji način za to je pokretanje sledeće naredbe:

crontab -i

Ovo postavlja pitanje "da li ste sigurni?" prije uklanjanja datoteke crontab.