Paano Mag-iskedyul ng crontab Upang Isagawa sa Oras ng Pag-boot ng System
Ang mga sistema ng Linux at Unix ay na-preinstall kasama ang cron utility, isang job scheduler na nagpapadali sa pag-iskedyul ng mga trabaho sa crontab file. Ang parehong utility ay magagamit para sa macOS. Ang syntax para sa pag-iiskedyul ng mga trabaho sa mga ibinigay na agwat ay ibinigay sa ibaba:
Min Oras Araw-ng-buwan Buwan Araw-ng-linggo [ utos ]Halimbawa, maaari mong gamitin ang sumusunod na command kung kailangan mong magpatakbo ng backup na script tuwing 20 minuto mula 3:00 p.m. hanggang 4:00 p.m. araw-araw.
*/ dalawampu labinlima - 16 * * * / landas / sa / backup.sh
Gumagana ang nakaraang utos kapag kailangan mong magsagawa ng trabaho sa isang partikular na oras, ngunit paano kung kailangan mo ng parehong utos para tumakbo pagkatapos ng bawat boot?
Upang itakda ang parehong command na tumakbo kapag nag-reboot ang system, palitan ang mga field ng petsa at oras ng @reboot. Ang bagong utos ay:
@ i-reboot / landas / sa / backup.shSa nakaraang utos, ang @reboot tumutukoy na ang cron ay dapat isagawa ang tinukoy na utos pagkatapos ng bawat boot. Muli, dapat nating idagdag ang command sa crontab file.
Gamitin ang sumusunod na command upang buksan ang crontab file at i-edit ito upang idagdag ang aming bagong trabaho.
crontab -atTandaan na ginagawa namin ang trabaho para sa kasalukuyang user. Kung kailangan mong iiskedyul ang gawain para sa ibang user, halimbawa, isang user na pinangalanan linuxhint1 , ang sumusunod na utos ay magiging:
crontab -at -sa linuxhint1Kapag bumukas ang crontab file, idagdag ang command sa ilalim na linya. I-save ang file at lumabas.
Gayundin, tandaan na gumagamit kami ng a nano editor, maaaring iba ang iyong editor, ngunit pareho ang utos.
Kung matagumpay na nakaiskedyul ang trabaho, dapat kang makakuha ng mensahe tulad ng ipinapakita sa sumusunod na larawan upang ipahiwatig ang matagumpay na pag-install ng bagong crontab:
Gayunpaman, maaari mong gamitin ang sumusunod na command upang ilista ang mga naka-iskedyul na trabaho.
crontab -lKung hindi mo na gustong isagawa ang command sa oras ng boot, maaari mo itong alisin sa pamamagitan ng pag-edit ng crontab file o gamit ang command na ibinigay sa ibaba. Tandaan na tinatanggal ng sumusunod na command ang lahat ng naka-iskedyul na trabaho. Kung hindi iyon ang gusto mong makamit, mag-scroll pababa sa crontab at manu-manong tanggalin ang trabaho gamit ang isang editor.
crontab -r
Ang @reboot ay nagpapatupad ng isang utos kaagad pagkatapos ng oras ng boot. Gayunpaman, maaari kang tumukoy ng panahon ng pagtulog bago tumakbo ang command. Halimbawa, kung kailangan mo ng utos na magsagawa ng 10 minuto pagkatapos ng boot, dapat mong itakda ang oras sa mga segundo.
Ang utos ay.
@ i-reboot matulog 600 / landas / sa / backup.shAng 600 ay kumakatawan sa 10 minutong ipinahayag sa mga segundo, at matulog ay ang opsyon na gagamitin kapag tinutukoy ang oras bago ang pagpapatupad.
Itatakda ang aming bagong crontab file, tulad ng ipinapakita sa ibaba:
Sa susunod na pag-reboot mo sa iyong server, ang backup na script o ang set na command ay isasagawa pagkatapos ng 10 minuto.
Panghuli, maaari naming i-verify na ang naka-iskedyul na trabaho ay tatakbo sa pamamagitan ng pagsuri sa katayuan para sa serbisyo ng crond . Dapat ay aktibo . Gamitin ang sumusunod na command upang suriin ang katayuan nito:
sudo systemctl status cron.serviceHanda kang pumunta kung makakakuha ka ng isang output tulad ng sumusunod na output:
Kung ang status ng crond ay hindi aktibo, maaari mo itong paganahin gamit ang sumusunod na command, pagkatapos ay suriin ang katayuan:
sudo systemctl paganahin cron.service
Ayan yun. Ipapatupad ang iyong command sa oras ng boot.
Konklusyon
Ang pag-alam kung paano mag-iskedyul ng mga trabaho sa oras ng boot ay mahalaga para sa mga administrator ng Linux. Sa kabutihang palad, ang gabay na ito ay sumasaklaw sa isang komprehensibong hands-on na gabay sa kung paano gawin iyon gamit ang Linux cron utility. Bilang karagdagan, tinalakay namin kung paano ka makakapagtakda ng oras ng pagtulog bago isagawa ang utos.