11 Mga Ehemplo sa Buluhaton sa Pag-iskedyul sa Cron sa Linux


Niini nga artikulo, atong susihon ug tan-awon kon unsaon nato pag-iskedyul ug pagdagan ang mga buluhaton sa background nga awtomatiko sa regular nga mga agwat gamit ang Crontab command.

Ang pag-atubang sa usa ka kanunay nga trabaho nga mano-mano usa ka makahahadlok nga buluhaton alang sa mga administrador sa sistema ug ang ingon nga mga buluhaton mahimong ma-iskedyul ug awtomatiko nga modagan sa background nga wala’y pagpangilabot sa tawo gamit ang cron daemon sa Linux o sama sa Unix nga operating system.

[ Tingali ganahan ka usab: Unsaon Paghimo ug Pagdumala sa Mga Trabaho sa Cron sa Linux ]

Pananglitan, mahimo nimong i-automate ang mga gamit sa online aron makamugna og mga trabaho sa cron.

Ang Cron nagmata matag minuto ug nagsusi sa mga buluhaton sa eskedyul sa maihap - Ang Crontab (CRON TABle) usa ka lamesa diin mahimo namon nga ma-iskedyul ang ingon nga mga klase sa gibalikbalik nga buluhaton.

Mga Tip: Ang matag user mahimong adunay ilang kaugalingon nga crontab sa paghimo, pag-usab ug pagtangtang sa mga buluhaton. Pinaagi sa default ang cron gi-enable sa mga tiggamit, bisan pa, mahimo namon mapugngan ang mga tiggamit pinaagi sa pagdugang usa ka entry sa /etc/cron.deny file.

Ang Crontab nga file naglangkob sa command kada linya ug adunay unom ka field sa aktuwal ug gibulag bisan hain sa luna o tab. Ang sinugdanan nga lima ka mga natad nagrepresentar sa oras sa pagpadagan sa mga buluhaton ug ang katapusan nga natad alang sa pagmando.

  • Minuto (paghupot sa mga bili tali sa 0-59)
  • Oras (paghupot sa mga bili tali sa 0-23)
  • Adlaw sa Buwan (paghupot sa mga bili tali sa 1-31)
  • Ang bulan sa tuig (paghupot sa mga bili tali sa 1-12 o Ene-Disyembre, mahimo nimong gamiton ang unang tulo ka letra sa ngalan sa matag bulan i.e Ene o Hun.)
  • Adlaw sa semana (paghupot sa mga bili tali sa 0-6 o Sun-Sat, Dinhi usab nimo magamit ang unang tulo ka letra sa ngalan sa matag adlaw i.e Sun o Wed. )
  • Command – Ang /path/to/command o script nga gusto nimong i-iskedyul.

Ilista o igdumala ang buluhaton gamit ang crontab command nga adunay -l nga opsyon para sa kasamtangang user.

# crontab -l

00 10 * * * /bin/ls >/ls.txt

Para i-edit ang crontab entry, gamita ang -e ang opsyon sama sa gipakita sa ubos. Sa ubos nga pananglitan magbukas ang mga trabaho sa iskedyul sa editor sa VI. Paghimo sa gikinahanglan nga mga pagbag-o ug hunong sa pagpindot sa :wq nga mga yawe nga awtomatikong magtipig sa setting.

# crontab -e

Aron ilista ang mga naka-iskedyul nga trabaho sa usa ka partikular nga user nga gitawag ug tecmint gamit ang opsyon isip -u (User) ug -l (Listahan).

# crontab -u tecmint -l

no crontab for tecmint

Mubo nga sulat: Ang gamut nga tiggamit lamang ang adunay kompleto nga mga pribilehiyo nga makita ang mga entry sa crontab sa ubang mga tiggamit. Ang mga normal nga tiggamit dili makakita sa uban.

Pasidaan: Ang Crontab nga adunay -r ang parameter magtangtang sa kompleto nga naka-iskedyul nga mga trabaho nga walay kumpirmasyon gikan sa crontab. Gamita ang -i nga opsyon sa dili pa i-delete ang crontab sa user.

# crontab -r

crontab nga adunay -i ang opsyon mag-aghat kanimo sa pagkumpirma gikan sa user sa dili pa tangtangon ang crontab sa user.

# crontab -i -r

crontab: really delete root's crontab?

  • Asterisk(*) – Ipares ang tanang value sa field o bisan unsang posibleng value.
  • Hyphen(-) – Para ipasabot ang range.
  • Slash (/) – 1st field /10 nga nagpasabot sa matag napulo ka minuto o pagtaas sa range.
  • Ang Comma (,) – Sa pagbulag sa mga butang.

Ang tagdumala sa sistema makagamit sa predefine nga direktoryo sa cron sama sa gipakita sa ubos.

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

Ang ubos nga mga trabaho magtangtang sa walay sulod nga mga file ug direktoryo gikan sa /tmp sa 12:30 am kada adlaw. Kinahanglan nimong hisgutan ang user name aron mahimo ang crontab command. Sa ubos nga pananglitan ang root user naghimo sa usa ka cron job.

# crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

Kinahanglan nga ilisan ang lima ka mga natad sa cron command nga adunay mga keyword kung gusto nimo gamiton ang parehas.

Sa ubos nga pananglitan, ang command1 ug command2 modagan kada adlaw.

# crontab -e

@daily <command1> && <command2>

Sa kasagaran, ang cron nagpadala ug mail sa user account nga nagpatuman sa cronjob. Kung gusto nimo nga i-disable kini idugang ang imong cron nga trabaho susama sa sa ubos nga pananglitan. Gamit ang >/dev/null 2>&1 nga opsyon sa katapusan sa file mag-redirect sa tanang output sa mga resulta sa cron ubos sa /dev/null.

 crontab -e
* * * * * >/dev/null 2>&1

konklusyon: Ang pag-automate sa mga buluhaton mahimong makatabang kanato sa paghimo sa atong mga buluhaton sa mas maayong paagi, walay sayop, ug episyente. Mahimo nimong i-refer ang usa ka manual nga panid sa crontab alang sa dugang nga kasayuran pinaagi sa pag-type sa 'man crontab' nga mando sa imong terminal.