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:
- /etc/cron.allow
- /etc/cron.deny
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
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:
- Dienas, kad komanda ir jāgaida (m)
- Dienas stunda, kurā komanda ir jāgaida (h)
- Mēneša diena, kad komandai jābrauc (dom)
- Mēnesis, kurā komandai jāstartē (mon)
- Nedēļas diena komandai ir jāiet (dow)
- Komanda
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.