Linux-da 11 kron meýilnamalaşdyryş meselesi
Bu makalada, Crontab buýrugyny ulanyp yzygiderli aralyklarda wezipeleri awtomatiki tertipde nädip tertipläp we işledip boljakdygyny gözden geçireris.
Entlyygy-ýygydan iş bilen el bilen işlemek ulgam dolandyryjylary üçin gaty kyn mesele we şular ýaly meseleler Linux ýa-da Unix ýaly operasiýa ulgamynda kron daemon ulanyp, adam gatyşmazdan fonda awtomatiki meýilleşdirilip we işledilip bilner.
[Şeýle hem halap bilersiňiz: Linux-da Kron işlerini nädip döretmeli we dolandyrmaly]
Mysal üçin, kron işlerini döretmek üçin onlaýn gurallary awtomatlaşdyryp bilersiňiz.
Kron her minutda oýanyp, sanalýan tertipdäki meseleleri barlaýar - Crontab (CRON TABle), şular ýaly gaýtalanýan işleri tertipläp bilýän tablisadyr.
Maslahat: Her bir ulanyjynyň meseleleri döretmek, üýtgetmek we pozmak üçin öz gabygy bolup biler. Düzgüne görä kron ulanyjylara açyk, ýöne /etc/cron.deny faýlyna ýazgy goşmak bilen ulanyjylary çäklendirip bileris.
“Crontab” faýly her setirde buýrukdan ybarat bolup, aslynda alty meýdan bar we boşlukdan ýa-da goýmadan bölünýär. Başlangyç bäş meýdan, işleri ýerine ýetirmek üçin wagty aňladýar we iň soňky meýdan buýruk üçin.
- Minut (0-59 aralygyndaky bahalary saklaň)
- Sagat (0-23 aralygyndaky bahalary saklaň)
- Aý güni (1-31 aralygyndaky bahalary saklaň)
- ofylyň aýy (1-12-nji ýanwar-dekabr aralygynda bahalary saklaň, her aýyň adynyň ilkinji üç harpyny ulanyp bilersiňiz, ýagny Janan ýa-da Iýun.)
- Hepdäniň güni (0-6 ýa-da Gün-Sat aralygynda bahalary saklaň, Bu ýerde her günüň adynyň ilkinji üç harpyny, ýagny Gün ýa-da Çarşenbe ulanyp bilersiňiz)
- Buýruk - meýilleşdirmek isleýän/ýol/to/buýruk ýa-da skript.
Häzirki ulanyjy üçin -l
opsiýasy bilen crontab buýrugy bilen meseläni sanaň ýa-da dolandyryň.
# crontab -l 00 10 * * * /bin/ls >/ls.txt
Kontab ýazgysyny redaktirlemek üçin aşakda görkezilişi ýaly -e
opsiýasyny ulanyň. Aşakdaky mysalda VI redaktorynda iş tertibi açylar. Zerur üýtgeşmeler giriziň we sazlamany awtomatiki saklaýan : wq
düwmelerini basmagy bes ediň.
# crontab -e
Tecmint atly belli bir ulanyjynyň meýilnamalaşdyrylan işlerini -u
(Ulanyjy) we -l
(Sanaw) görnüşinde ulanyp bilersiňiz.
# crontab -u tecmint -l no crontab for tecmint
Bellik: Diňe kök ulanyjynyň beýleki ulanyjylaryň kontab ýazgylaryny görmek üçin doly hukuklary bar. Adaty ulanyjylar beýlekileri görüp bilmeýärler.
Üns beriň: -r
parametri bolan Crontab, crontab-dan tassyklamazdan doly meýilleşdirilen işleri aýyrar. Ulanyjynyň gabygyny pozmazdan ozal -i
opsiýasyny ulanyň.
# crontab -r
-i
bilen crontab, ulanyjynyň kronabyny pozmazdan ozal ulanyjydan tassyklamany sorar.
# crontab -i -r crontab: really delete root's crontab?
- Asterisk (*) - Meýdandaky ähli bahalary ýa-da mümkin bolan bahalary deňeşdiriň.
- Hypen (-) - Aralygy kesgitlemek.
- Slash (/) - 1-nji meýdan/10 her on minutda ýa-da aralyk artmagyny aňladýar.
- vergul (,) - Aýry-aýry zatlary aýyrmak.
Ulgam dolandyryjysy aşakda görkezilişi ýaly deslapky kron katalogyny ulanyp biler.
- /etc/cron.d
- /etc/cron.daily
- /etc/cron.hourly
- /etc/cron.monthly
- /etc/cron.weekly
Aşakdaky işler her gün irden 12: 30-da boş faýllary we katalogy/tmp-den pozýar. “Crontab” buýrugyny ýerine ýetirmek üçin ulanyjy adyny bellemeli. Aşakdaky mysalda kök ulanyjy kron işini ýerine ýetirýär.
# crontab -e 30 0 * * * root find /tmp -type f -empty -delete
Şol bir zady ulanmak isleseňiz, kron buýrugynyň bäş meýdançasyny açar sözler bilen çalyşmaly.
Aşakdaky mysalda, command1 we command2 her gün işleýär.
# crontab -e @daily <command1> && <command2>
Düzgüne görä, kron kronjob ýerine ýetirýän ulanyjy hasabyna poçta iberýär. Öçürmek isleseňiz, aşakdaky mysala meňzeş kron işiňizi goşuň. Faýlyň soňundaky>/dev/null 2> & 1 opsiýasyny ulanmak, kron netijeleriniň ähli çykyşlaryny/dev/null astynda ugrukdyrar.
crontab -e * * * * * >/dev/null 2>&1
Netije: Işleriň awtomatlaşdyrylmagy, wezipelerimizi has ýalňyş, ýalňyşsyz we netijeli ýerine ýetirmäge kömek edip biler. Terminalyňyza “man crontab” buýrugyny ýazyp has giňişleýin maglumat üçin “crontab” -yň el sahypasyna ýüz tutup bilersiňiz.