Patakbuhin ang isang Cron Job Tuwing Minuto

Run Cron Job Every Minute



Kung nais mong magpatakbo ng isang programa o script sa background sa Linux kung gayon ang cron job ay napakahalaga. Sa tulong ng mga trabaho sa cron, maaari kang magpatupad ng isang programa o script sa background pagkatapos ng isang naibigay na agwat ng oras.

Tingnan natin ang ilang mga halimbawa ng totoong buhay ng mga cron job.







  • Sabihin nating, nagmamay-ari ka ng isang website at nais mong magpadala sa lahat ng mga gumagamit ng iyong website ng isang email araw-araw. Ang kailangan mo lang gawin ay, magsulat ng isang email sa pagpapadala ng script at mag-set up ng isang cron job upang patakbuhin ang script na iyon araw-araw.
  • Sabihin nating, nagmamay-ari ka ng ahensya sa advertising at nais mong paalalahanan ang lahat ng mga advertiser na ang balanse ay mas mababa sa 5 $ upang muling magkarga. Ang kailangan mo lang gawin ay magsulat ng isang script na susuriin ang balanse ng lahat ng mga advertiser at kapag mas mababa sa 5 $, magpapadala ito ng isang abiso sa mobile number o email ng advertiser. Pagkatapos ay mag-set up ng isang cron job upang patakbuhin ang script bawat 5 hanggang 10 minuto, o bawat oras.

Maraming iba pang mga paggamit ng mga trabaho sa cron sa Linux.



Sa artikulong ito, ipapakita ko sa iyo kung paano magpatakbo ng mga trabaho sa cron bawat minuto sa Linux. Gagamitin ko ang Debian 9 Stretch para sa demonstration. Ngunit maaari mong gamitin ang anumang modernong pamamahagi ng Linux na iyong pinili. Magsimula na tayo.



Sa Linux, hindi mo kailangang maging ugat upang magpatakbo ng mga trabaho sa cron. Maaari kang magpatakbo ng mga trabaho sa cron bilang anumang gumagamit. Ang bawat gumagamit sa Linux ay maaaring gumamit ng a crontab file upang magpatakbo ng kanilang sariling hanay ng mga trabaho sa cron.





Bilang default, ang isang gumagamit ay walang crontab file sa Linux. Maaari kang lumikha ng isang crontab file kasama ang sumusunod na utos:

$crontab-At



Kung pinapatakbo mo ang utos na ito sa kauna-unahang pagkakataon, dapat ay hilingin sa iyo na pumili ng isang text editor mula sa listahan. Pipiliin ko nano , ang isang default. Maaari mong piliin ang gusto mo. Kapag tapos ka na, pindutin .

Ang crontab file ay dapat na nilikha (kung hindi magagamit na) at buksan sa iyong paboritong text editor. Ngayon ay maaari kang magdagdag ng iyong sariling mga trabaho sa cron sa dulo ng file na ito at sa sandaling masaya ka, i-save lamang ito at lumabas sa text editor.

Syntax ng Pagpapatakbo ng isang Command bawat Minuto:

Ang syntax ng crontab ang file ay ang mga sumusunod:

minuto oras na arawOfMonth month dayOfWeek utosToRun

Dito,

  • minuto ay maaaring maging 0 sa 59 .
  • oras ay maaari ding maging 0 sa 59 .
  • dayOfMonth ay maaaring maging 1 sa 31 .
  • buwan ay maaaring maging 1 sa 12 .
  • araw sa isang linggo ay maaaring maging 0 sa 7 . 0 at 7 nangangahulugang Linggo, 1 nangangahulugang Lunes, 2 nangangahulugang Martes at iba pa.

Upang patakbuhin ang a utosToRun utusan bawat minuto, dapat mong isulat ito sa crontab mag-file tulad ng sumusunod:

* * * * *utosToRun

Pagpapatakbo ng isang Crob Job Tuwing Minuto:

Ngayong alam na natin ang mga teorya, magdagdag tayo ng isang simpleng script timer.sh sa crontab file at tingnan kung paano pamahalaan ito.

Nasa timer.sh script, mayroon lamang akong mga sumusunod na linya ng mga code. Ang ginagawa lang nito ay lumikha ng isang bagong file /home/shovon/bin/timer.log (kung wala na) at idinugtong ang output ng utos ng petsa dito.

Ngayon idagdag natin ang script sa aming crontab at hayaan itong tumakbo bawat minuto gamit ang sumusunod na linya:

* * * * * /bahay/shovon/am/timer.sh

Kapag na-save mo na ang crontab file at lumabas sa text editor, ang bago crontab dapat na mai-install ang file.

Pagkatapos ng isang minuto ay naipasa, isang bagong file ay timer.log ay nilikha sa nais na direktoryo tulad ng nakikita mo sa minarkahang seksyon ng screenshot sa ibaba.

Galing sa timer.log mag-log file, halata na ang script timer.sh tumatakbo bawat minuto.

Mga Pagkakamali sa Pagkuha mula sa Mga Trabaho ng Cron:

Upang mahuli ang mga error mula sa isang cron job, maaari kang magpadala ng mga error sa a error.log file at normal na output sa access.log file halimbawa. Siyempre maaari mong pangalanan ang mga file ng anumang nais mo.

Upang maipakita ito, binago ko ang aking script timer.sh kaunti lamang. Ngayon ang mga error ay ipinapadala sa error.log file sa / bahay / shovon / basurahan ang direktoryo at ang mga output ay ipinadala sa access.log nasa / bahay / shovon / basurahan direktoryo

Sa una ang / tmp / i_must_be_here ang file ay wala, kaya nakukuha ko ang error sa error.log file tulad ng nakikita mo.

Ang access.log ang file ay walang laman sa ngayon.

Ngayon lilikha ako ng file / tmp / i_must_be_here

At tulad ng nakikita mo, ang output ay nasa access.log file na ngayon

Kung nais mo, maaari mong i-redirect ang output at mga error sa parehong file tulad ng sumusunod:

Tulad ng nakikita mo, ang mga output ng STDIN at STDERR ay ipinadala sa palabas.log file

Siguraduhin na ang Huling Trabaho Tapos na Tumatakbo Bago Patakbuhin muli ang Trabaho:

Upang gumana ito, maaari kang lumikha ng isang pansamantalang file pagkatapos magsimula ang trabaho at alisin ito bago ito matapos. Pagkatapos ay maaari mong suriin kung mayroon ang pansamantalang file bago simulan ang trabaho. Kung gagawin ito, maaari kang lumabas sa trabaho at patakbuhin lamang ang trabaho kapag hindi magagamit ang pansamantalang file.

Ginagawa lang ito ng simpleng script.

Tulad ng nakikita mo, ang timer.pid ang file ay nilikha.

Pagbasa ng access.log pinatunayan ng file na ang cron job ay hindi tatakbo bago matapos ang dating trabaho sa cron. Tulad ng nakikita mo, tumakbo ito sa 01:32:01 at sa susunod na dapat itong tumakbo sa 01:33:01, ngunit hindi. Sa halip, tumakbo ito ng 01:35:01, mga 3 minuto ang lumipas.

Pagsasaayos ng Mga Output ng Cron Job para sa Madaling Pag-debug:

Maaari mong mai-format nang maayos ang mga output upang gawing mas madaling i-debug ang iyong trabaho sa cron.

Ang isang halimbawa ng kung paano ito magagawa ay ibinibigay sa sumusunod na iskrip.

Tulad ng nakikita mo, ang mga output, error at mensahe ng tagumpay ay maayos na naka-print sa file ng log.

Maaari kang gumawa ng mga kamangha-manghang bagay sa mga trabaho sa cron at mga script ng shell. Ipinakita ko ang ilan sa mga ideya dito. Ngunit ang langit ang iyong hangganan. Huwag mag-atubiling mag-eksperimento sa anumang mga ideya na mayroon ka. Salamat sa pagbabasa ng artikulong ito.