Kako urediti Linux Crontab datoteku za zakazivanje poslova

Uvod

U Linuxu postoji demon koji se naziva cron koji se koristi za pokretanje procesa u redovitim razmacima.

Način na koji to radi jest da provjerite određene mape na vašem sustavu kako bi se skripte pokrenule. Na primjer, postoji mapa pod nazivom /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly i / etc / cron.monthly. Tu je i datoteka pod nazivom / etc / crontab.

Prema zadanim postavkama jednostavno možete staviti skripte u relevantne mape da biste ih pokrenuli u redovitim razmacima.

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

ls / etc / cron *

Vidjet ćete popis programa ili skripti koje se pokreću svakog sata, dnevno, tjedno i mjesečno.

Problem s ovim mapama je da su malo nejasni. Na primjer, dnevno znači da će skripta biti pokrenuta jednom dnevno, ali nemate kontrolu nad vremenom kada će skripta trajati tijekom tog dana.

Tamo dolazi crontab datoteka.

Uređivanjem crontab datoteke možete dobiti skriptu ili program za pokretanje u točan datum i vrijeme na kojem želite pokrenuti. Na primjer, možda želite kopirati datoteke svake večeri u 18 sati.

dozvole

Naredba crontab zahtijeva da korisnik ima dopuštenja za uređivanje crontab datoteke. U osnovi postoje dvije datoteke koje se koriste za upravljanje crontab dozvolama:

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

Ako postoje obje datoteke, tada /etc/cron.allow nadjačava datoteku /etc/cron.deny.

Ako niti jedna datoteka ne postoji, ovisi o konfiguraciji sustava može li korisnik urediti crontab.

Korijenski korisnik uvijek može uređivati ​​crontab datoteku. Možete koristiti su naredbu za prelazak na root korisnika ili sudo naredbu za pokretanje naredbe crontab.

Uređivanje datoteke Crontab

Svaki korisnik koji ima dopuštenja može izraditi vlastitu datoteku crontab. Cron naredba u osnovi traži postojanje više crontab datoteka i prolazi kroz sve njih.

Za provjeru imate li crontab datoteku pokrenite sljedeću naredbu:

crontab -l

Ako nemate crontab datoteku, pojavit će se poruka "no crontab for ", inače će se prikazati vaša crontab datoteka (ova funkcionalnost razlikuje se od sustava do sustava, ponekad ne prikazuje ništa, a drugi puta prikazuje " ne uredujte ovu datoteku ").

Za izradu ili uređivanje crontab datoteke izvedite sljedeću naredbu:

crontab-e

Prema zadanim postavkama ako nema odabranog zadanog uređivača, od vas će se tražiti da odaberete zadani editor za korištenje. Osobno volim koristiti nano jer je prilično jednostavan za korištenje i pokreće se od terminala.

Datoteka koja se otvori ima puno informacija, ali ključni dio je primjer neposredno prije kraja odjeljka za komentare (komentari su označeni redcima koji počinju s #).

# mh dom mon dow naredba

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

Na svakoj liniji crontab datoteke odgovara 6 informacija:

Za svaku stavku (osim naredbe) možete odrediti zamjenski znak. Pogledajte sljedeći primjer crontab linije:

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

Ono što gore navedena naredba govori jest 30 minuta, 18 sati i svaki dan, mjesec i dan u tjednu pokrenuti naredbu za zip i staviti kućni direktorij u mapu / var / backups.

Da biste dobili naredbu za pokretanje u trajanju od 30 minuta svakih sat vremena, mogu pokrenuti sljedeću naredbu:

30 * * * * naredba

Da biste dobili naredbu za pokretanje svake minute poslije 18 sati, mogu pokrenuti sljedeću naredbu:

* 18 * * * naredba

Stoga morate biti oprezni oko postavljanja naredbi crontab.

Na primjer:

* * * 1 * naredba

Gornja naredba će trajati svake minute svakog sata svakog dana svakog tjedna u siječnju. Sumnjam da je to ono što želite.

Za pokretanje naredbe u 5 sati ujutro, na sljedećoj naredbi crontab datoteku:

0 5 1 1 * naredbu

Kako ukloniti Crontab datoteku

Većinu vremena nećete želite ukloniti crontab datoteku, ali biste htjeli ukloniti neke retke iz datoteke crontab.

Međutim, ako želite ukloniti crontab datoteku svog korisnika, izvedite sljedeću naredbu:

crontab -r

Sigurniji način za to je pokretanje sljedeće naredbe:

crontab -i

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