Paano Mag-execute ng crontab sa System Boot Time

Paano Mag Execute Ng Crontab Sa System Boot Time



Naghahanap ka ba ng solusyon sa pagpapatakbo ng crontab tuwing magre-reboot ang iyong server o system? Ito ay posible sa pamamagitan ng paggamit ng @reboot na opsyon. Ang default na paraan ng pagpapatakbo ng mga cron job ay ang pagtukoy ng kanilang petsa at oras, na sinusundan ng path sa command na ipapatupad. Ang parehong konsepto ay ginagamit kapag tumutukoy sa isang command na dapat isagawa sa tuwing magre-restart ang server. Ang pagkakaiba lang ay, sa kasong ito, hindi namin tinukoy ang petsa at oras. Sa halip, ginagamit namin ang @reboot sinusundan ng landas patungo sa utos. Tingnan natin kung paano ito gumagana.

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.sh



Sa 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 -at

Tandaan 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 linuxhint1

Kapag 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 -l

Kung 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.sh

Ang 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.service

Handa 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.