Learning - Unix Cron Job in Docker container with Python, bash and NodeJs
Talaan ng mga Nilalaman:
- Ano ang File ng Crontab
- Crontab Syntax at Operator
- System-wide Crontab Files
- Predefined Macros
- Utos ng Crontab ng Linux
- Mga variable ng Crontab
- Mga Paghihigpit sa Crontab
- Mga Halimbawa ng Mga Trabaho ng Cron
- Konklusyon
Ang Cron ay isang daemon sa pag-iskedyul na nagsasagawa ng mga gawain sa tinukoy na agwat. Ang mga gawaing ito ay tinatawag na mga cron job at kadalasang ginagamit upang awtomatiko ang pagpapanatili ng system o pangangasiwa.
Halimbawa, maaari kang magtakda ng trabaho sa cron upang awtomatiko ang paulit-ulit na mga gawain tulad ng pag-back up ng mga database o data, pag-update ng system gamit ang pinakabagong mga patch ng seguridad, suriin ang paggamit ng puwang sa disk, pagpapadala ng mga email at iba pa. Ang ilang mga aplikasyon, tulad ng Drupal o Magento, ay nangangailangan ng mga trabaho sa cron upang maisagawa ang ilang mga gawain.
Ang mga trabaho sa cron ay maaaring naka-iskedyul na magpatakbo ng isang minuto, oras, araw ng buwan, buwan, araw ng linggo o anumang kumbinasyon ng mga ito.
Ano ang File ng Crontab
Ang Crontab (talahanayan ng cron) ay isang text file na tumutukoy sa iskedyul ng mga trabaho sa cron. Mayroong dalawang uri ng mga file ng crontab. Ang malawak na system ng mga file na crontab at mga indibidwal na file ng crontab ng gumagamit.
Ang mga file ng crontab ng mga gumagamit ay nakaimbak ng pangalan ng gumagamit, at ang kanilang lokasyon ay nag-iiba sa pamamagitan ng mga operating system. Sa sistemang batay sa Red Hat tulad ng CentOS, ang mga file ng crontab ay naka-imbak sa direktoryo
/var/spool/cron
habang sa mga file na Debian at Ubuntu ay naka-imbak sa direktoryo
/var/spool/cron/crontabs
.
Kahit na maaari mong mai-edit nang manu-mano ang mga file ng crontab, inirerekumenda na gamitin ang utos ng
crontab
.
/etc/crontab
at ang mga file sa loob ng
/etc/cron.d
direktoryo ay mga file na lapad ng mga file na crontab na mai-edit lamang ng mga administrador ng system.
Sa karamihan ng mga pamamahagi ng Linux maaari ka ring maglagay ng mga script sa loob ng
/etc/cron.{hourly, daily, weekly, monthly}
at ang mga script ay isinasagawa tuwing
hour/day/week/month
.
Crontab Syntax at Operator
Ang bawat linya sa file ng crontab ng gumagamit ay naglalaman ng anim na mga patlang na pinaghiwalay ng isang puwang na sinusundan ng utos na tatakbo.
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
Ang unang limang patlang ay maaaring maglaman ng isa o higit pang mga halaga, na pinaghiwalay ng isang kuwit o isang hanay ng mga halaga na pinaghiwalay ng isang hyphen.
-
*-Ang asterisk operator ay nangangahulugang anumang halaga o palaging. Kung mayroon kang simbolo ng asterisk sa larangan ng Hour, nangangahulugan ito na ang gawain ay isasagawa bawat oras.,-Pinahihintulutan ka ng operator ng komma na tukuyin ang isang listahan ng mga halaga para sa pag-uulit. Halimbawa, kung mayroon kang1, 3, 5sa larangan ng Hour, ang gawain ay tatakbo ng 1:00, 3 am at 5 am.--Ang pinapayagan ka ng operator ng hyphen na tukuyin ang isang hanay ng mga halaga. Kung mayroon kang1-5sa Araw ng patlang ng linggo, ang gawain ay tatakbo tuwing Linggo (Mula Lunes hanggang Biyernes)./-Ang nagpapahintulot sa iyo ng slash operator na tukuyin ang mga halaga na uulitin sa isang tiyak na agwat sa pagitan nila. Halimbawa, kung mayroon kang*/4sa larangan ng Hour, nangangahulugan ito na isasagawa ang pagkilos tuwing apat na oras. Ito ay katulad ng pagtukoy ng0, 4, 8, 12, 16, 20. Sa halip na asterisk bago ang slash operator, maaari mo ring gamitin ang isang hanay ng mga halaga, ang1-30/10nangangahulugang pareho ng1, 11, 21.
System-wide Crontab Files
Ang syntax ng mga system-wide crontab file ay bahagyang naiiba kaysa sa mga crontabs ng gumagamit. Naglalaman ito ng isang karagdagang ipinag-uutos na patlang ng gumagamit na tumutukoy kung aling gumagamit ang tatakbo sa trabaho ng cron.
Mayroong maraming mga espesyal na iskedyul ng Cron na ginamit upang tukuyin ang mga karaniwang agwat. Maaari mong gamitin ang mga shortcut na ito sa lugar ng pagtutukoy ng limang haligi ng petsa. Pinapayagan ka ng crontab na utos na mag-install o magbukas ng isang crontab file para sa pag-edit. Maaari mong gamitin ang utos ng crontab upang tingnan, madagdagan, alisin, o baguhin ang mga trabaho sa cron gamit ang mga sumusunod na pagpipilian: Binubuksan ng utos ng crontab ang file ng crontab gamit ang editor na tinukoy ng
Ang cron daemon ay awtomatikong nagtatakda ng maraming variable ng kapaligiran. Maaaring kontrolin ng mga administrador ng system kung aling mga gumagamit ang may access sa
Sa pamamagitan ng default lamang ang
Kung ang
Kung wala man ang file, tanging ang mga gumagamit na may mga pribilehiyong administratibo ay maaaring gumamit ng
Nasa ibaba ang ilang mga halimbawa ng trabaho sa cron na magpapakita sa iyo kung paano mag-iskedyul ng isang gawain na tatakbo sa iba't ibang mga tagal ng oras. Magpatakbo ng isang utos sa 15:00 sa bawat araw mula Lunes hanggang Biyernes: Patakbuhin ang isang script tuwing 5 minuto at nai-redirect ang standard na output upang
Patakbuhin ang dalawang utos tuwing Lunes sa 3:00 (gamitin ang operator at
Patakbuhin ang isang script ng PHP tuwing 2 minuto at isulat ang output sa isang file: Magpatakbo ng isang script araw-araw, bawat oras, sa oras, mula 8:00 hanggang 4 ng hapon: Magpatakbo ng isang script sa unang Lunes ng bawat buwan, alas-7 ng umaga Patakbuhin ang isang script sa 9:15 pm, sa ika-1 at ika-15 ng bawat buwan: Itakda ang mga pasadyang
Nalaman mo kung paano lumikha ng mga trabaho sa cron at mga iskedyul ng mga gawain sa isang tukoy na petsa at oras. Huwag mag-atubiling mag-iwan ng komento kung mayroon kang mga katanungan.
* * * * * command(s)
* * * * * command(s)
Predefined Macros
@yearly
(o
@annually
) - Patakbuhin ang tinukoy na gawain minsan sa isang taon sa hatinggabi (12:00 am) ng ika-1 ng Enero. Katumbas sa
0 0 1 1 *
.
@monthly
- Patakbuhin ang tinukoy na gawain isang beses sa isang buwan sa hatinggabi sa unang araw ng buwan. Katumbas sa
0 0 1 * *
.
@weekly
- Patakbuhin ang tinukoy na gawain isang beses sa isang linggo sa hatinggabi sa Linggo. Katumbas sa
0 0 * * 0
.
@daily
- Patakbuhin ang tinukoy na gawain isang beses sa isang araw sa hatinggabi. Katumbas sa
0 0 * * *
.
@hourly
- Patakbuhin ang tinukoy na gawain isang beses sa isang oras sa simula ng oras. Katumbas sa
0 * * * *
.
@reboot
- Patakbuhin ang tinukoy na gawain sa system startup (boot-time).Utos ng Crontab ng Linux
crontab -e
- I-edit ang crontab file, o lumikha ng isa kung hindi ito umiiral.
crontab -l
- Ipakita ang mga nilalaman ng file ng crontab.
crontab -r
- Alisin ang iyong kasalukuyang crontab file.
crontab -i
- Alisin ang iyong kasalukuyang crontab file na may isang mabilis bago alisin.
crontab -u
VISUAL
o
EDITOR
variable variable.
Mga variable ng Crontab
PATH=/usr/bin:/bin
. Kung ang utos na iyong tinawag ay naroroon sa tinukoy na landas ng cron, maaari mo ring gamitin ang ganap na landas sa utos o baguhin ang variable na cron
$PATH
. Hindi mo maaaring tahasang magdagdag ng
:$PATH
tulad ng gagawin mo sa isang regular na script.Ang default na shell ay nakatakda sa
/bin/sh
. Maaari kang magtakda ng isang iba't ibang mga shell sa pamamagitan ng pagpapalit ng variable ng SHELL.Cron hinihingi ang utos mula sa direktoryo ng bahay ng gumagamit. Ang variable ng
HOME
maaaring ma-overridden sa pamamagitan ng mga setting sa crontab. Ang email na notification ay ipinadala sa may-ari ng crontab. Upang ma-overwrite ang default na pag-uugali, maaari mong gamitin ang variable ng kapaligiran
MAILTO
may isang listahan (hiwalay ang comma) ng lahat ng mga email address na nais mong matanggap ang mga abiso sa email. Kung ang
MAILTO
ay tinukoy ngunit walang laman (
MAILTO=""
), walang ipinadala na mail.Mga Paghihigpit sa Crontab
crontab
utos sa pamamagitan ng paggamit ng
/etc/cron.deny
at
/etc/cron.allow
file. Ang mga file ay binubuo ng isang listahan ng mga usernames, isang pangalan ng gumagamit bawat linya.
/etc/cron.deny
file ay umiiral at walang laman, na nangangahulugang ang lahat ng mga gumagamit ay maaaring gumamit ng utos ng crontab. Kung nais mong tanggihan ang pag-access sa mga utos ng crontab sa isang tukoy na gumagamit, idagdag ang username sa file na ito.
/etc/cron.allow
file ay umiiral lamang ang mga gumagamit na nakalista sa file na ito ay maaaring gumamit ng
crontab
command.
crontab
command.Mga Halimbawa ng Mga Trabaho ng Cron
0 15 * * 1-5 command
dev null
, tanging ang karaniwang error ay maipapadala sa tinukoy na e-mail address:
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
pagitan ng mga utos):
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
HOME
,
PATH
,
SHELL
at
MAILTO
variable at magpatakbo ng isang utos bawat minuto.
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
Konklusyon
Computerworld ay hindi maaaring maging lugar upang gawin ang argument na ito, tulad ng maraming mga mambabasa, walang duda, enjoy playing may bagong software. Ngunit ang iba naman ay hindi. Nagsasalita ako tungkol sa karamihan ng mundo na ang mga trabaho ay hindi kaugnay sa IT. Ang mga taong ito ay maaaring gumamit ng mga computer, kahit na kailangan ang mga ito, ngunit tinitingnan nila ito bilang isang tool upang makuha ang kanilang trabaho. Wala nang iba pa. Bilang isang tagapayo, nakita ko it
Noong nakaraang linggo, sa paggawa ng kaso para sa cloud computing, kapwa Computerworld blogger na si Mark Everett Hall ay nagsalita rin para sa mga di-techies:
Ang pag-urong ay may mga kumpanya sa buong mundo na nag-aagawan upang ipagtanggol ang mga gastos sa teknolohiya na may mga desperadong vendor na tumutugon sa pagliko, na nag-aalok ng mga diskuwento sa malalim na lisensya, na nagbibigay ng murang financing at nagpapahayag na mas masalimuot na ang kanilang mga produkto sa katunayan ay nagse-save ng mga customer ng pera. mayroong higit sa digmaang trench na nangyayari, ayon sa isang hanay ng mga tagamasid. Kapag ang ekonomiya ay lumiliko sa paligid
Halimbawa, ang mga vendor na nagbebenta ng software na mahalaga sa negosyo ngunit hindi nagbibigay ng mga customer ng isang competitive na kalamangan - - tulad ng mga tool sa pakikipagtulungan - kailangang mag-ampon ng mas simple, mas mura na mga modelo ng pagpepresyo o harapin ang mga kahihinatnan, ayon sa analyst ng Redmonk na si Michael Coté.
Bawasan ang iyong workspace para sa isang mas mahusay na karanasan sa pagtatrabaho, sa mga naka-temang Mga Gadget! ang isang desk kung bilang isang trabaho o isang libangan ng isang bagay na mayroon ka sa paligid mo ay maaaring manipulahin ang iyong kalooban. Magdagdag ng ilang mga buhay sa paligid ng iyong workspace upang pasiglahin ang iyong kalooban at lumikha ng isang mas mahusay na karanasan sa trabaho.
Para sa sinuman na gumagawa ng anumang trabaho sa isang desk kung bilang isang trabaho o isang libangan alot ng kung ano ang mayroon ka sa paligid mo ay maaaring manipulahin ang iyong kalooban. Ako ay isang pangunahing halimbawa. Tulad ng taglamig oras at trabaho ay mabagal ko ngayon gastusin ang karamihan ng aking mga araw sa likod ng aking laptop.







