Ang Linux terminal ay nagbibigay-daan sa amin na gumawa ng mga bagay na higit pa sa pag-type ng mga command. Sa kasong ito, pag-uusapan natin ang tungkol sa pag-automate ng mga gawain sa Cron. Binibigyang-daan tayo ng automation hindi lamang na maiwasan ang mga paulit-ulit na gawain kundi pati na rin ang computer na gawin ang mga ito kapag wala tayo. Ito ay partikular na kapaki-pakinabang sa mga server.
Ang Cron ay isang daemon na responsable sa pagsasagawa ng mga gawain sa isang partikular na agwat ng oras. Bagama't ang tungkulin nito ay pangasiwaan ang mga regular na gawain sa pagpapanatili ng system, maaari kaming magdagdag ng iba na interesado sa amin.
Kapag pinag-uusapan natin ang tungkol sa mga demonyo, hindi natin tinutukoy ang isang maliit na demonyo sa loob ng ating computer. Sa computing, ang daemon ay isang application o proseso na tumatakbo sa background ng operating system nang hindi nangangailangan ng direktang pakikipag-ugnayan sa user. Kasama sa kanilang mga responsibilidad ang mga koneksyon sa network, pag-print, mga web server, at pagsubaybay sa mapagkukunan.
Ang ilan sa mga pangunahing tampok
- Karaniwang nagsisimula sila sa boot ng system.
- Tumatakbo sila sa background, nang hindi kailangang malaman ng user ang kanilang pag-iral.
- Ang mga ito ay idinisenyo upang isagawa ang mga gawain nang permanente o bilang reaksyon sa ilang mga kaganapan.
Pag-automate ng mga gawain gamit ang Cron
Kung gusto naming sabihin kay Cron kung ano ang gagawin, magagawa namin ito gamit ang isang crontab file. Isa lamang itong text file na nagpapahiwatig ng isang serye ng mga command na dapat isagawa ng cron sa isang tinukoy na petsa. Mayroong dalawang uri ng crontab file: ang crontab file na ginawa ng system at ang crontab file na ginawa ng user.
Sa anumang pagkakataon ay hindi namin dapat hawakan ang system crontab file, na ginagamit ng Linux para sa pagsasaayos at pagpapanatili. Imposibleng baguhin ito nang hindi sinasadya dahil ang file na ito ay matatagpuan sa folder. /etc/crontab.
Paglikha ng sarili nating crontab
Kinakailangan ng Cron na ang mga gawaing itinalaga namin dito ay may mga parameter na nakasaad sa ganitong pagkakasunud-sunod:
h: Oras ng pagsisimula sa hanay na 0-23.
m: Mga minuto sa pagitan 0-59.
d: Araw ng buwan sa pagitan ng pagitan 1-31
buwan: Tinutukoy ang buwan ng taon na may saklaw na 1-12
s: Araw ng linggo na may pagitan 0-6
Ang data na ito ay napupunta sa loob ng crontab file. Upang lumikha ng file na ito isinulat namin ang utos:
crontab –u nombre de usuario –e
Kung ang crontab ay para sa default na user, maaari nating alisin ang -u parameter
Kapag pinatakbo namin ito sa unang pagkakataon, sasabihin nito sa amin na wala ang file at magmumungkahi na gumawa ng isa at i-edit ito gamit ang isa sa mga editor na naka-install sa computer.
Ang ilang mga puntong dapat tandaan kapag nag-e-edit ng crontab ay:
- Ang bawat gawain ay napupunta sa isang linya
- Sa lahat ng kaso, dapat ipahiwatig ang petsa at oras kung saan dapat isagawa ang bawat gawain. Upang ipahiwatig ang periodicity (halimbawa, Martes sa 18 pm) ang mga asterisk ay isinulat sa halip na ang iba pang mga parameter.(*)
- Posibleng magtalaga ng higit sa isang value sa isang parameter (Halimbawa Martes at Huwebes sa 18 pm) Paghihiwalay sa parehong mga halaga sa pamamagitan ng mga kuwit.
- Dapat iwanang mga puwang sa pagitan ng mga parameter.
- Tukuyin ang direktoryo kung saan matatagpuan ang command launcher.
Upang magbigay ng halimbawa, kung gusto naming i-restart ang computer araw-araw sa 19 p.m.:
0 19 * * * /sbin/reboot
Upang ang pag-restart ay sa Miyerkules lamang, ang pagtuturo ay magiging:
0 20 * * 3 /sbin/reboot
.
Mayroong ilang mga shortcut na nagbibigay-daan sa amin upang maiwasan ang pagsusulat ng lahat ng mga parameter:
@oras-oras: Kung gusto nating magsagawa ng utos sa simula ng bawat oras.
@araw-araw: Upang patakbuhin ang utos sa simula ng bawat araw.
@lingguhan: Patakbuhin ang utos sa unang araw ng linggo.
@buwanang: Ang utos ay isinasagawa sa unang minuto ng bawat buwan.
@taon-taon: Pareho pero sa unang minuto ng bawat taon..
Ilang halimbawa ng paggamit ng command na ito:
@daily /bin/sh /ruta_al_script/nombre_del_script.sh
Magsagawa ng mga custom na tagubilin sa isang bash script sa simula ng araw.
@hourly /bin/python3 /ruta_al_script/nombre_del_script.py
Gumagawa ng isang python script na tumatakbo bawat oras.
Dapat nating palaging tiyakin na ang mga script ay may mga pahintulot sa pagpapatupad.