Pagsabot ug Paggamit sa Cron: Usa ka Komprehensibo nga Giya sa Pag-iskedyul sa mga Trabaho
Cron, mubo alang sa command run online, usa ka gamhanan nga time-based job scheduler sa sama sa Unix nga mga operating system. Ang termino cron usa ka dula sa pulong kronos or chronos, nga sa Gregong mitolohiya naghawas sa panahon. Ang ngalan nga cron alang sa time-based job scheduler nagpakita sa iyang function sa pag-iskedyul ug pagpatuman sa mga buluhaton sa piho nga mga panahon o mga agwat, nga naghimo niini nga haom nga paghisgot sa konsepto sa panahon sa mitolohiya.
Gitugotan ka sa Cron nga i-automate ang mga balik-balik nga buluhaton, ipatuman ang mga script sa piho nga mga agwat, ug ipadayon ang pagkaayo sa sistema. Kini nga komprehensibo nga giya maggiya kanimo sa tanan nga kinahanglan nimong mahibal-an bahin sa cron, gikan sa pag-install hangtod sa paggamit, yawe nga bokabularyo, ug tinuod nga mga sample sa code.
Kaundan
- Unsa ang cron?
- Pag-instalar sa Cron
- Pangunang mga Konsepto ug Terminolohiya
- Cron Syntax
- Mga Pananglitan ug Mga Kaso sa Paggamit
- Kasagarang mga Pitfalls ug Best Practices
- Dugang nga mga kapanguhaan sa cron
Unsa man si Cron?
Ang Cron usa ka daemon (proseso sa background) nga nagdagan sa mga sistema nga nakabase sa Unix, lakip ang Linux ug macOS. Ang nag-unang katuyoan niini mao ang awtomatikong pagpatuman sa mga naka-iskedyul nga buluhaton. Kini nga mga buluhaton mahimong gikan sa yano nga mga script hangtod sa pagpadayon sa sistema ug pag-backup.
Pag-instalar sa Cron
Sa kadaghanan nga mga sistema nga sama sa Unix, ang cron na-pre-install. Mahimo nimong susihon ang pagkaanaa niini pinaagi sa pag-abli sa usa ka terminal ug pag-type:
crontab -e
Kung kini nga mando magbukas sa cron table editor, na-install nimo ang cron. Kung dili, mahimo nimo kini i-install gamit ang manager sa package sa imong sistema. Pananglitan, sa Ubuntu, mahimo nimong gamiton:
sudo apt-get install cron
Mga Konsepto ug Terminolohiya sa Cron
Sa dili pa mosalom sa paggamit sa cron, atong sabton ang pipila ka importanteng konsepto ug terminolohiya:
- crontab: Mubo alang sa cron nga lamesa, kini usa ka file nga adunay lista sa mga naka-iskedyul nga buluhaton alang sa usa ka tiggamit.
- Cronjob: Usa ka buluhaton o sugo nga gieskedyul nga modagan sa usa ka piho nga oras.
- kaumahan: Ang matag cronjob adunay lima ka mga field nga nagtino kung kanus-a modagan ang trabaho:
- Minuto (0-59)
- Oras (0-23)
- Adlaw sa bulan (1-31)
- Bulan (1-12)
- Adlaw sa semana (0-7, diin ang 0 ug 7 nagrepresentar sa Domingo)
Cron Syntax
Ang pagsabut sa syntax sa usa ka crontab entry hinungdanon. Kini nagsunod sa sumbanan:
* * * * * command-to-be-executed
Ania ang usa ka gikomento nga katin-awan nga mahimo nimong isulud sa imong cron nga trabaho:
# +---------------- minute (0 - 59)
# | +------------- hour (0 - 23)
# | | +---------- day of month (1 - 31)
# | | | +------- month (1 - 12)
# | | | | +---- day of week (0 - 6) (Sunday=0 or 7)
# | | | | |
* * * * * /var/www/html/myscript.php
Ang matag asterisk (*) nagrepresentar sa usa ka field sa cron expression. Pananglitan, aron mag-iskedyul og trabaho kada adlaw sa alas 3:30 sa hapon, imong gamiton ang:
30 15 * * * command-to-be-executed
Mga Ehemplo sa Cron ug Mga Kaso sa Paggamit
Atong susihon ang pipila ka praktikal nga mga pananglitan aron ihulagway ang paggamit sa cron:
- Pagdagan sa usa ka Script Adlaw-adlaw: Aron mapatuman ang usa ka script kada adlaw sa tungang gabii, mahimo nimong gamiton ang:
0 0 * * * /path/to/script.sh
- Pagpadagan sa usa ka Script Matag Oras: Alang sa matag oras nga buluhaton, gamita ang:
0 * * * * /path/to/script.sh
- Semana nga Pag-backup: Aron mag-iskedyul og sinemana nga backup sa Dominggo sa alas 2 sa buntag, gamita ang:
0 2 * * 0 /path/to/backup-script.sh
- Pagpadagan sa usa ka Buluhaton sa Piho nga mga Bulan: Sa pagdagan og trabaho sa Enero ug Hulyo lamang sa 8:30 AM:
30 8 * 1,7 * /path/to/script.sh
Cron Pitfalls ug Best Practices
- Mga Variable sa Kalikupan: Siguruha nga ang imong mga trabaho sa cron nagpahimutang sa kinahanglan nga mga variable sa palibot, tungod kay ang mga trabaho sa cron dili makapanunod sa mga variable sa palibot sa imong shell.
- Pahugot: Siguroha nga imong gibutang ang mga permiso sa imong script file isip executable. Sa matag higayon nga akong i-save ang akong script, akong makita ang akong mga pagtugot nga kinahanglan i-set pag-usab!
- Mga Variable sa Dalan: Ipiho ang tibuok nga dalan sa mga executable ug mga script sulod sa imong mga trabaho sa cron aron malikayan ang mga isyu sa mga relatibong agianan.
- Pagsulay: Sulayi sila sa usa ka luwas nga palibot sa dili pa mag-set up sa mga kritikal nga cron nga trabaho aron masiguro nga sila molihok sama sa gipaabut.
- logging: I-redirect ang output sa imong mga trabaho sa cron ngadto sa usa ka log file aron masubay ang ilang pagpatuman ug bisan unsang posibleng mga sayop.
0 0 * * * /path/to/script.sh >> /path/to/cron.log 2>&1
Kini nga cron nga trabaho nagpadagan sa usa ka script /path/to/script.sh
kada adlaw sa tungang gabii, ug ang output (parehong stdout ug stderr) nga namugna sa script gidugtong sa log file
/path/to/cron.log
. Kini usa ka sagad nga praktis aron makuha ug ma-log ang output sa mga trabaho sa cron alang sa mga katuyoan sa pag-monitor ug pag-troubleshoot. Atong gub-on kining piho nga cron job syntax:
- *0 0 ***: Kini nga bahin naghubit sa iskedyul kung kanus-a kinahanglan nga modagan ang cron job. Sa kini nga kaso, kini gikatakda nga modagan matag adlaw sa tungang gabii (0 minuto lapas sa 0 ka oras).
- /path/to/script.sh: Kini ang sugo o script nga ipatuman kung ang cron job modagan. Kini nga pananglitan nagpakita sa usa ka script nga nahimutang sa
/path/to/script.sh
. - >> /path/to/cron.log: Kini nga bahin nag-redirect sa standard nga output (stdout) sa cron job ngadto sa usa ka log file nga ginganlan
cron.log
nahimutang sa/path/to/
. ang>>
idugang sa operator ang output sa log file, mao nga kung wala ang file, mahimo kini, ug kung naglungtad na, ang output idugang sa katapusan sa file. - 2> & 1: Kini gigamit alang sa pag-redirect sa standard nga output (stdout) ug standard error (stderr) ngadto sa samang log file. Ang
2
nagrepresentar sa stderr, ug ang1
nagrepresentar sa stdout. Busa,2>&1
nagpasabot nga ang stdout ug stderr gi-redirect sa samang log file nga gitakda sa sayo pa.
Ang Cron usa ka bililhon nga himan alang sa pag-automate sa mga buluhaton sa mga sistema nga nakabase sa Unix. Uban sa flexible nga mga kapilian sa pag-iskedyul, mahimo’g mapasimple ang pagdumala sa sistema ug mapaayo ang kahusayan. Pinaagi sa pagsabut sa syntax niini ug pagsunod sa labing kaayo nga mga gawi, mahimo nimong magamit ang gahum sa cron aron epektibo nga ma-automate ang imong naandan nga mga buluhaton.
Dugang nga mga Kapanguhaan sa Cron
- Unix nga Daemon - Dean Wilson