- Paano gumagana ang crond daemon at kung paano pinamamahalaan ang mga gawain gamit ang crontab file.
- Detalyadong syntax at paggamit ng mga espesyal na karakter upang magprograma ng mga tumpak na pagpapatupad.
- Pagpapatupad ng mga backup script gamit ang TAR at automation ng pagpapanatili ng system.
- Mga modernong alternatibo tulad ng mga systemd timer at mga graphical na tool para sa pamamahala ng proseso.
Lumipat ka man kamakailan sa Linux o matagal ka nang namamahala ng sarili mong server, malamang na napagtanto mo na ang ilang mga gawain ay talagang mahirap gawin nang manu-mano. Mula sa paglilinis ng mga pansamantalang file hanggang sa pagtiyak na ligtas ang iyong data gamit ang mga backup, ang pag-automate ng mga prosesong ito ay susi upang maiwasan ang pagkadismaya at maiwasan ang simpleng pagkakamali na makasira sa trabahong natamo sa loob ng isang buwan.
Para malutas ito, ang mga sistemang parang UNIX ay may isang maalamat na tool na tinatawag na Cron. Sa madaling salita, ito ay parang isang alarm clock para sa mga command na naglulunsad ng mga script o application sa eksaktong oras na iyong tinukoy, habang nagtatrabaho sa background habang umiinom ka ng kape o tuluyang nakakalimutan na umiiral ang gawain.
Ano nga ba ang Cron at paano ito gumagalaw?
Kapag pinag-uusapan natin ang Cron, ang tinutukoy natin ay isang daemon na tinatawag na crond . Sa mundo ng Linux, ang daemon ay isang proseso lamang na tumatakbo sa background, nang walang user interface, mula sa sandaling mag-boot ang system. Ang trabaho nito ay nakakabagot ngunit mahalaga: bawat minuto ay sinusuri nito ang mga configuration file upang makita kung mayroong anumang naka-iskedyul na cron job na tumutugma sa kasalukuyang oras at petsa.
Para maging maayos ang lahat, mahalaga na maayos na nakatakda ang orasan ng sistema. Kung mali ang oras o time zone, tatakbo ang iyong mga backup sa maling oras. Samakatuwid, inirerekomenda na gamitin ang utos na `timedatectl` upang mapatunayan na tama ang pag-synchronize sa mga NTP server, na tinitiyak na walang anumang pagkakaiba sa oras ang sistema.
Ang Crontab file: Kung saan nangyayari ang mahika
Kung ang Cron ang engine, ang crontab naman ang instruction map . Ito ay isang text file kung saan isinusulat natin kung ano ang gusto nating patakbuhin at kailan. Kapansin-pansin, hindi lang iisa ang file; ang sistema ay may global crontab sa /etc/crontab, ngunit ang bawat user ay maaaring magkaroon ng kani-kanilang crontab, na nagpapahintulot sa iba't ibang tao na mag-iskedyul ng kanilang mga gawain nang hindi nangangailangan ng mga pribilehiyo ng administrator sa lahat ng oras.
Para pamahalaan ang mga gawaing ito, ginagamit natin ang utos na `crontab -e` para i-edit, `crontab -l` para ilista kung ano ang aktibo, at `crontab -r` kung gusto nating burahin ang lahat at magsimula mula sa simula. Ito ay isang napakalinis na paraan para isaayos ang pagpapanatili ng system nang hindi hinahawakan ang mahahalagang kernel files.
Pagsusuri sa syntax ng Cron
Para mag-iskedyul ng isang gawain, kailangan mong sundin ang isang napakahigpit na pagkakasunod-sunod ng limang field ng oras na susundan ng utos. Ang pagkakasunod-sunod ay: minuto, oras, araw ng buwan, buwan, at araw ng linggo . Halimbawa, kung ilalagay natin ang 0 19 * * 0, sinasabi natin sa sistema na mag-activate ng 7 PM tuwing Linggo.
Para mas mapadali ang ating buhay, may mga mga espesyal na character na nagbibigay sa atin ng ganap na kontrol. Ang asterisk (*) ay nangangahulugang "palagi" o "anumang halaga," habang ang slash (/) ay ginagamit upang tukuyin ang mga agwat, tulad ng */10 para magpatakbo ng isang bagay kada sampung minuto. Ang gitling (-) ay tumutukoy sa mga saklaw at ang kuwit (,) ay nagbibigay-daan sa iyong maglista ng mga partikular na halaga. Bukod pa rito, mayroon ding mga mga paunang natukoy na shortcut tulad ng @daily, @weekly o @reboot, na nagpapadali sa pagsusulat para sa mga pinakakaraniwang kaso.
Paglikha ng iyong unang backup system
Isa sa mga pinakakapaki-pakinabang na aplikasyon ay ang pag-backup ng data. Para dito, ang TAR tool ang mainam na katutubong opsyon . Maaari tayong lumikha ng Bash script na magba-package ng ating mga file, magtatalaga ng kasalukuyang petsa sa pangalan ng file, at, pinakamahalaga, hindi isasama ang mga hindi kinakailangang folder tulad ng cache o trash upang ang backup ay hindi maging gigabytes ng junk.
Kapag nagawa na ang script (halimbawa, sa /usr/local/bin/mybackup) at naibigay na ang mga pahintulot sa pagpapatupad gamit ang chmod +x , magdagdag lamang ng isang linya sa root crontab. Sa ganitong paraan, awtomatikong isasagawa ng server ang pag-backup, at maaari mo ring iiskedyul ang script upang awtomatikong burahin ang mga backup na mas luma sa dalawang linggo upang maiwasan ang pagpuno sa hard drive.
Advanced na administrasyon at mga ganap na landas
Isang karaniwang pagkakamali sa mga baguhan ang paggamit ng mga relative path sa kanilang mga script. Tumatakbo ang Cron sa isang napaka-limitadong kapaligiran at hindi nito alam ang iyong lokasyon, kaya dapat mong palaging gumamit ng mga absolute path (tulad ng /home/user/script.sh sa halip na ./script.sh). Kung hindi, ang utos ay tahimik na mabibigo, at magkakaroon ka ng hindi kanais-nais na sorpresa kapag kailangan mong i-recover ang iyong data.
Upang maiwasan ang pagiging bulag, mahalaga ito i-redirect ang output sa mga logPaggamit ng operator >>> /var/log/backup.log 2>&1Maaari nating i-save ang parehong tagumpay at pagkabigo sa isang file. Sa ganoong paraan, kung may magkamali, kailangan lang nating tingnan ang log file upang malaman kung ano mismo ang nangyari nang hindi na kailangang manghula.
Epekto sa pagganap at mga pinakamahusay na kasanayan
Hindi ipinapayong labis na i-overload ang sistema ng mga gawaing tumatakbo bawat segundo, dahil maaari itong magdulot ng mabilis na paggamit ng CPU at RAM . Ang pinakamatalinong paraan ay ang pag-iskedyul ng mga prosesong nangangailangan ng maraming mapagkukunan, tulad ng mga pag-update ng database o malalaking backup, sa mga oras ng madaling araw o mga oras na hindi peak hours upang maiwasan ang epekto sa mga user.
Upang maiwasan ang pag-overlap ng isang gawain sa isa pa kung ang una ay mas matagal kaysa sa inaasahan, inirerekomendang gamitin ang flock , na pumipigil sa sabay-sabay na pagpapatupad ng parehong script. Bukod pa rito, upang limitahan kung sino ang maaaring gumamit ng Cron, maaaring i-configure ng administrator ang mga cron.allow at cron.deny na file , na tinitiyak na tanging ang mga awtorisadong tauhan lamang ang maaaring mag-iskedyul ng mga gawain sa server.
Mga modernong alternatibo: Mga Systemd Timer at higit pa
Bagama't klasiko ang Cron, ang mga modernong sistema ay gumagamit ng mga systemd timer . Mas makapangyarihan ang mga ito dahil pinapayagan ka nitong pamahalaan ang mga dependency, mas epektibong pangasiwaan ang mga error, at isagawa ang mga gawain batay sa mga kaganapan sa system (tulad ng startup) at hindi lamang ang orasan. Ang mga ito ay kino-configure gamit ang mga .timer at .service file sa /etc/systemd/system/.
Para sa mga hindi komportable sa terminal, may mga graphical na opsyon tulad ng KCron (para sa KDE) o mga web-based na tool tulad ng Webmin. Sa iba pang mga operating system, tulad ng macOS, ginagamit ang launchd , na nag-aalok ng mas malalim na integrasyon sa ecosystem ng Apple, na nagpapahintulot sa mga nabigong gawain na awtomatikong ma-restart.
Iba pang mga kaso ng paggamit sa totoong mundo sa mga server
Bukod sa mga backup, ang Cron ay ang perpektong tool para mapanatiling malinis ang iyong system . Maaari kang mag-iskedyul ng mga gawain upang burahin ang mga lumang log linggu-linggo o i-restart ang mga serbisyong may posibilidad na mag-crash. Mahalaga rin ito para sa pag-synchronize ng data gamit ang rsync sa pagitan ng iba't ibang makina, na tinitiyak na ang impormasyon ay kinokopya nang walang interbensyon ng tao.
Sa mga web environment, palagi itong ginagamit upang magpadala ng mga mass email , bumuo ng mga pang-araw-araw na ulat ng benta, o i-update ang cache ng isang pahina. Sa madaling salita, anumang paulit-ulit at nahuhulaang aksyon ay maaari at dapat italaga sa Cron upang ma-optimize ang produktibidad ng administrator.
Ang pagiging dalubhasa sa automation sa Linux ay nagbibigay-daan sa iyo upang gawing isang awtonomous at mahusay na makina ang isang manu-manong pinamamahalaang server. Sa pamamagitan ng pagsasama-sama ng paggamit ng mga Bash script, ang katumpakan ng crontab, at pagsubaybay sa log, masisiguro mong awtomatikong hahawakan ang pagpapanatili, seguridad, at integridad ng data, na nagpapalaya ng oras at lubos na binabawasan ang margin ng human error sa pamamahala ng imprastraktura.



