Paano Upang I-edit ang File ng Linux Crontab Upang Mag-iskedyul ng Trabaho

Panimula

Mayroong isang demonyo sa Linux na tinatawag na cron na ginagamit upang patakbuhin ang mga proseso sa mga regular na agwat.

Ang paraan ng paggawa nito ay upang suriin ang ilang mga folder sa iyong system para sa mga script na tumakbo. Halimbawa ay may isang folder na tinatawag na /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly at /etc/cron.monthly. Mayroon ding isang file na tinatawag na / etc / crontab.

Sa pamamagitan ng default maaari mong ilagay ang mga script sa mga may-katuturang folder upang makuha ang mga ito upang magpatakbo ng isang regular na agwat.

Halimbawa magbukas ng terminal window (sa pamamagitan ng pagpindot sa CTRL, ALT at T) at patakbuhin ang sumusunod na command na ls :

ls / etc / cron *

Makikita mo ang listahan ng mga programa o mga script na pinapatakbo ng oras-oras, araw-araw, lingguhan at buwanang.

Ang problema sa mga folder na ito ay ang mga ito ay isang medyo hindi malinaw. Halimbawa araw-araw ay nangangahulugang ang script ay tatakbo nang isang beses sa isang araw ngunit wala kang kontrol sa oras na ang script ay tatakbo sa araw na iyon.

Iyon ay kung saan ang crontab file ay dumating sa.

Sa pamamagitan ng pag-edit ng crontab file maaari kang makakuha ng isang script o programa upang tumakbo sa eksaktong petsa at oras na gusto mo itong patakbuhin. Halimbawa siguro gusto mong i-backup ang iyong mga file tuwing gabi sa ika-6 ng hapon.

Mga Pahintulot

Ang command crontab ay nangangailangan na ang isang user ay may pahintulot na mag-edit ng isang crontab file. Mayroong dalawang pangunahing mga file na ginagamit upang pamahalaan ang mga pahintulot ng crontab:

Kung ang file /etc/cron.allow ay umiiral, ang user na gustong i-edit ang crontab file ay dapat na nasa file na iyon. Kung ang cron.allow file ay hindi umiiral ngunit may isang /etc/cron.deny file at pagkatapos ay ang user ay hindi dapat na umiiral sa file na iyon.

Kung ang parehong mga file ay umiiral, ang /etc/cron.allow ay pinapalitan ang /etc/cron.deny file.

Kung walang file na umiiral, ito ay depende sa pagsasaayos ng system kung ang isang user ay maaaring mag-edit ng crontab.

Ang root user ay maaaring palaging i-edit ang crontab file. Maaari mong gamitin ang su command upang lumipat sa root user o sa sudo command upang patakbuhin ang crontab command.

Pag-edit ng File ng Crontab

Ang bawat user na may mga pahintulot ay maaaring lumikha ng kanilang sariling crontab file. Ang cron command ay karaniwang naghahanap ng pagkakaroon ng maramihang mga crontab file at tumatakbo sa pamamagitan ng lahat ng ito.

Upang suriin kung mayroon kang isang crontab file patakbuhin ang sumusunod na command:

crontab -l

Kung wala kang isang file na crontab ang mensahe na "walang crontab para sa ay lilitaw kung hindi man ipapakita ang iyong crontab file (ang pag-andar na ito ay naiiba mula sa sistema patungo sa system, kung minsan ay nagpapakita ito ng walang anuman at iba pang mga oras na ipinapakita nito," huwag i-edit ang file na ito ").

Upang gumawa o mag-edit ng isang crontab file patakbuhin ang sumusunod na command:

crontab -e

Bilang default kung walang napiling default editor, hihilingin ka na pumili ng isang default na editor na gagamitin. Personal na gusto kong gamitin ang nano bilang medyo tuwid forward upang gamitin at ito ay tumatakbo mula sa terminal.

Ang file na nagbukas ay may maraming impormasyon ngunit ang pangunahing bahagi ay ang halimbawa bago ang katapusan ng seksyon ng mga komento (ang mga komento ay tinutukoy ng mga linya na nagsisimula sa #).

# mh dom mon dow command

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Mayroong 6 na piraso ng impormasyon upang magkasya sa bawat linya ng file na crontab:

Para sa bawat item (maliban sa command) maaari mong tukuyin ang isang wildcard na character. Tingnan ang sumusunod na halimbawa ng crontab line:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

Ang sinasabi ng utos sa itaas ay 30 minuto, 18 oras at anumang araw, buwan at araw ng linggo magpatakbo ng isang command upang i- zip at i- tar ang direktoryo ng tahanan sa / var / backup folder.

Upang makakuha ng isang command na tumakbo sa 30 minuto nakaraan bawat oras na maaari kong patakbuhin ang sumusunod na command:

30 * * * * command

Upang makakuha ng isang command na tumakbo sa bawat minuto sa nakalipas na 6:00 maaari kong patakbuhin ang sumusunod na command:

* 18 * * * command

Dapat mong maging maingat tungkol sa pag-set up ng iyong mga crontab command.

Halimbawa:

* * * 1 * command

Ang utos sa itaas ay tatakbo sa bawat minuto ng bawat oras ng bawat araw ng bawat linggo sa Enero. Duda ko iyan ang gusto mo.

Upang magpatakbo ng isang command sa 5 ng umaga sa ika-1 ng Enero nais mo sa sumusunod na command sa crontab file:

0 5 1 1 * command

Paano Upang Alisin ang Isang Crontab File

Karamihan sa mga oras na hindi mo nais na alisin ang crontab file ngunit maaari mong alisin ang ilang mga hilera mula sa crontab file.

Gayunpaman kung nais mong tanggalin ang crontab file ng iyong user patakbuhin ang sumusunod na command:

crontab -r

Ang isang mas ligtas na paraan upang gawin ito ay upang patakbuhin ang sumusunod na command:

crontab -i

Humihingi ito ng tanong na "sigurado ka ba?" bago alisin ang crontab file.