Kā rediģēt Linux Crontab failu, lai plānotu darbus

Ievads

Linux sistēmā dēmons sauc par cronu, ko regulāri izmanto, lai palaistu procesus.

Kā tas notiek, lai pārbaudītu dažas mapes jūsu sistēmā skriptiem palaist. Piemēram, ir mape ar nosaukumu /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly un /etc/cron.monthly. Ir arī fails ar nosaukumu / etc / crontab.

Pēc noklusējuma jūs varat vienkārši ievietot skriptus attiecīgajās mapēs, lai tās varētu regulāri izpildīt.

Piemēram, atveriet termināla logu (nospiežot CTRL, ALT un T) un palaidiet šādu ls komandu :

ls / etc / cron *

Jūs redzēsiet programmu vai skriptu sarakstu, kas tiek izmantoti stundas, dienas, nedēļas un mēneša laikā.

Ar šīm mapēm saistītās problēmas ir tādas, ka tās ir mazliet neskaidras. Piemēram, ikdienā tas nozīmē, ka skripts darbosies reizi dienā, bet jums nav kontroles par laiku, kad skripts darbosies šīs dienas laikā.

Tas ir, ja ir pieejams crontab fails.

Rediģējot crontab failu, jūs varat iegūt skriptu vai programmu, lai to izpildītu precīzā datumā un laikā, kad vēlaties to palaist. Piemēram, varbūt vēlaties dublēt savus failus katru vakaru plkst. 18.00.

Atļaujas

Komandai crontab nepieciešams, lai lietotājam būtu atļaujas rediģēt crontab failu. Pamatā ir divi faili, kurus izmanto, lai pārvaldītu crontab atļaujas:

Ja ir /etc/cron.allow fails, tad lietotājam, kurš vēlas rediģēt crontab failu, jābūt tajā failā. Ja cron.allow fails neeksistē, bet ir /etc/cron.deny fails, lietotājs nedrīkst pastāvēt šajā failā.

Ja ir abi faili, /etc/cron.allow ignorē failu /etc/cron.deny.

Ja nav neviena faila, tas atkarīgs no sistēmas konfigurācijas, vai lietotājs var rediģēt crontab.

Saknes lietotājs vienmēr var rediģēt crontab failu. Jūs varat vai nu izmantot komandu su, lai pārslēgtos uz root lietotāju vai komandu sudo, lai palaistu komandu crontab.

Crontab faila rediģēšana

Katrs lietotājs, kam ir atļaujas, var izveidot savu crontab failu. Cron komanda pamatā meklē vairākus crontab failus un iet caur tiem visiem.

Lai pārbaudītu, vai jums ir crontab fails, izpildiet šādu komandu:

crontab -l

Ja jums nav crontab faila, tiks parādīts ziņojums "nav crontab par ", pretējā gadījumā tiks parādīts jūsu crontab fails (šī funkcija atšķiras no sistēmas uz sistēmu, dažreiz tā neparādās vispār, un citos gadījumos tā tiek parādīta) " neraksti šo failu ").

Lai izveidotu vai rediģētu crontab failu, izpildiet šādu komandu:

crontab-e

Pēc noklusējuma, ja nav atlasīts noklusējuma redaktors, jums tiks lūgts izvēlēties noklusēto redaktoru, kuru izmantot. Personīgi man patīk izmantot nano, jo tas ir diezgan taisni uz priekšu, lai to izmantotu, un tas darbojas no termināļa.

Atvērtajam failam ir daudz informācijas, bet galvenā daļa ir piemērs tieši pirms komentāru sadaļas beigām (komentāri tiek apzīmēti ar rindām, kas sākas ar #).

# mh dom mon dow komanda

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

Katrā crontab faila rindiņā ir 6 informācijas daļas:

Par katru vienumu (izņemot komandu) varat norādīt aizstājējzīmi. Apskatiet nākamo piemēri crontab līnijai:

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

Ko iepriekš minētā komanda saka, ir 30 minūtes, 18 stundas un jebkura diena, mēnesis un nedēļas diena, palaiž komandu, lai mapē / var / backups izveidotu mapi zip un darvas direktoriju.

Lai saņemtu komandu, kas palaistu 30 minūtes ik pēc stundas, es varu palaist šādu komandu:

30 * * * * komanda

Lai saņemtu komandu, kas palaist katru minūti pēdējo plkst. 18:00, es varu palaist šādu komandu:

* 18 * * * komanda

Tāpēc jums ir jābūt uzmanīgiem, kā iestatīt crontab komandas.

Piemēram:

* * * 1 * komanda

Iepriekš minētā komanda darbosies katru minūti katru stundu no katras nedēļas katru dienu janvārī. Es šaubos, ka tas ir tas, ko vēlaties.

Lai palaistu komandu 1. janvāra plkst. 5:00, crontab failā atradīsit šādu komandu:

0 5 1 1 * komanda

Kā noņemt Crontab failu

Lielāko daļu laika jūs nevēlaties noņemt crontab failu, taču jūs varētu vēlēties izņemt dažas rindas no crontab faila.

Tomēr, ja vēlaties noņemt lietotāja crontab failu, izpildiet šādu komandu:

crontab -r

Drošāks veids, kā to izdarīt, ir palaist šādu komandu:

crontab-i

Tas liek uzdot jautājumu: "Vai esat pārliecināts?" pirms izņemt crontab failu.