|
Lucainas visuomenÄs prieĆĄ kaĆŸkiek laiko puikus cron ir crontab pamokymas kad manau verta dalintis. âCronâ yra tam tikras âWindowsâ numatytĆł uĆŸduoÄiĆł atitikmuo, tik kad jis tvarkomas iĆĄ terminalo. Tie, kurie nori vizualinÄs sÄ sajos tam paÄiam tikslui pasiekti, gali tai pamatyti kitas punktas. |
Kas yra cron?
Cron pavadinimas kilÄs iĆĄ graikĆł chronos, kuris reiĆĄkia âlaikasâ. âUnixâ operacinÄje sistemoje âcronâ yra ÄŻprastas fono procesĆł tvarkytuvas (âdaemonâ), kuris reguliariai (pvz., KiekvienÄ minutÄ, dienÄ , savaitÄ ar mÄnesÄŻ) valdo procesus ar scenarijus. Procesai, kuriuos reikia vykdyti, ir laikas, kada jie turi bĆ«ti vykdomi, nurodyti crontab faile.
Kaip veikia
Cron daemon prasideda nuo /etc/rc.d/ o /etc/init.d priklausomai nuo pasiskirstymo. âCronâ veikia fone, kiekvienÄ minutÄ tikrina âcrontabâ uĆŸduoÄiĆł lentelÄ / etc / crontab , / var / spool / cron ieĆĄkant uĆŸduoÄiĆł, kurias reikia atlikti. Kaip vartotojas galime pridÄti komandas ar scenarijus su uĆŸduotimis, kad automatizuotume kai kuriuos procesus. Tai naudinga, pavyzdĆŸiui, norint automatizuoti sistemos arba geros atsarginÄs sistemos atnaujinimÄ .
Kas yra âCrontabâ?
âCrontabâ yra paprastas tekstinis failas, kuriame saugomas komandĆł, kurias reikia vykdyti vartotojo nurodytu laiku, sÄ raĆĄas. âCrontabâ patikrins datÄ ir laikÄ , kada turÄtĆł bĆ«ti vykdomas scenarijus ar komanda, vykdymo teises ir tai padarys fone. Kiekvienas vartotojas gali turÄti savo âcrontabâ failÄ , iĆĄ tikrĆłjĆł / etc / crontab manoma, kad tai yra ĆĄakninio vartotojo crontab failas, kai ÄŻprasti vartotojai (ir net root) nori sukurti savo crontab failÄ , tada mes naudosime komandÄ crontab.
âCrontabâ yra paprasÄiausias bĆ«das valdyti âcronâ uĆŸduotis daugelio naudotojĆł sistemose kaip paprastas sistemos vartotojas arba pagrindinis vartotojas.
Naudojant crontab
Mes pradedame nuo paprasto pavyzdĆŸio.
Mes ketiname automatizuoti sistemos atnaujinimÄ , kad paĆĄalintume erzinantÄŻ âAĆĄ visada turiu atnaujinti ir man tai nepatinka!â
Pirmiausia sukursime scenarijĆł. Ć ÄŻ scenarijĆł vadins âcronâ ir jame bus visos norimos instrukcijos, todÄl prieĆĄ ÄŻtraukiant jÄŻ ÄŻ âcronâ, bĆ«tina jÄŻ iĆĄbandyti keliais atvejais ir keliais bĆ«dais: paprastas atnaujinimo scenarijus, kaip ĆĄis:
#! / bin / bash #script atnaujinimo pavyzdys #pasirinkite platinimÄ # debian-ubuntu # apt-get update & apt-get -y upgrade #fedora #yum -y update #Arch #pacman --noconfirm -Syu
PaĆĄalinkite # iĆĄ savo platinimo linijos. Jei tai Ubuntu / Debian, tai prasideda apt-get.
ScenarijĆł ÄŻraĆĄome kaip update.sh (pvz., Scenarijai nukreipia jĆ«sĆł namus). MinÄto scenarijaus vykdymo teises keiÄiame:
chmod a + x ~ / scripts / update.sh
Mes keletÄ kartĆł paleidome scenarijĆł, kad patikrintume, ar viskas veikia sklandĆŸiai, mes modifikuojame tai, kas bĆ«tina (jame neturÄtĆł bĆ«ti klaidĆł, kitaip âcronâ klaidÄ pakartos tik vÄl ir vÄl). Dabar pridÄkite uĆŸduotÄŻ prie mĆ«sĆł kraĆĄto.
PridÄkite uĆŸduoÄiĆł prie âcrontabâ
âCrontabâ leidimÄ vykdome su âcrontab -eâ, kai kuriuose distros centruose (pvz., âUbuntuâ) jis suteikia galimybÄ pasirinkti norimÄ teksto redaktoriĆł, likusius mums lieka vi. Crontab failas atrodys maĆŸdaug taip.
# mh dom mon dow vartotojo komanda
kur:
- m atitinka minutÄ, kai scenarijus bus vykdomas, vertÄ svyruoja nuo 0 iki 59
- h tikslus laikas, 24 valandĆł formatas tvarkomas, reikĆĄmÄs svyruoja nuo 0 iki 23, o 0 yra 12:00 vidurnakÄio.
- dovana nurodo mÄnesio dienÄ , pavyzdĆŸiui, galite nurodyti 15, jei norite paleisti kas 15 dienĆł
- dow reiĆĄkia savaitÄs dienÄ , ji gali bĆ«ti skaitinÄ (nuo 0 iki 7, kur 0 ir 7 yra sekmadienis) arba pirmosios 3 dienos raidÄs angliĆĄkai: pirmadienis, antradienis, treÄiadienis, ketvirtadienis, penktadienis, sekmadienis, saulÄ.
- vartotojas apibrÄĆŸia vartotojÄ , kuris vykdys komandÄ , ji gali bĆ«ti root arba kitas vartotojas, jei jie turi leidimus vykdyti scenarijĆł.
- komanda nurodo komandÄ arba absoliutĆł scenarijaus keliÄ , kurÄŻ reikia vykdyti, pavyzdys: /home/usuario/scripts/update.sh, jei jis kvieÄia scenarijĆł, jis turi bĆ«ti vykdomas
Kad bĆ«tĆł aiĆĄku, keletas aiĆĄkinamĆłjĆł uĆŸduoÄiĆł pavyzdĆŸiĆł:
15 10 * * * vartotojas /home/user/scripts/update.sh
Jis paleis âupdate.shâ scenarijĆł kiekvienÄ dienÄ 10:15 val
15 22 * * * vartotojas /home/user/scripts/update.sh
Jis paleis âupdate.shâ scenarijĆł kiekvienÄ dienÄ 10:15 val
00 10 * * 0 root apt-get -y atnaujinimas Root vartotojas
Ji bus atnaujinta kiekvienÄ sekmadienÄŻ 10:00 val
45 10 * * saulÄs ĆĄaknies apt-get -y atnaujinimas
Pagrindinis vartotojas atnaujins kiekvienÄ sekmadienÄŻ (sekmadienÄŻ) 10:45
30 7 20 11 * vartotojas /home/usuario/scripts/updata.sh
LapkriÄio 20 d. 7 val. Vartotojas paleis scenarijĆł
30 7 11 11 saulÄs vartotojas /home/usuario/scripts/pastel_con_velitas.sh
LapkriÄio 11 d., 7 val., Tai yra sekmadienÄŻ, vartotojas ĆĄvÄs savo âsysadminâ (tai yra aĆĄ)
01 * * * * vartotojas /home/usuario/scripts/molestorecordatorio.sh
Erzinantis priminimas kiekvienÄ valandÄ kiekvienÄ valandÄ kiekvienÄ dienÄ (Nerekomenduojama).
Jie vis dar gali bƫti tvarkomi specialƫs diapazonai:
30 17 * * 1,2,3,4,5
KiekvienÄ dienÄ nuo pirmadienio iki penktadienio 5:30 popiet.
00 12 1,15,28 *
Kiekvieno mÄnesio pirmÄ , penkioliktÄ ir 12 dienÄ 28 val. (Idealiai tinka darbo uĆŸmokesÄiui)
Jei tai yra painu, sutraukite rankenas specialios eilutÄs ĆĄiems diapazonams apibrÄĆŸti.
@reboot Paleiskite vienÄ
kartÄ
, paleidimo metu
@ metai vyksta tik kartÄ
per metus: 0 0 1 1 *
@ kasmet tas pats kaip @metai
@ mÄnuo eina kartÄ
per mÄnesÄŻ, pirmÄ
dienÄ
: 0 0 1 * *
@ SavaitinÄ savaitinÄ savaitÄs pirmos valandos pirma minutÄ. 0 0 * * 0 âł.
Kasdien, kasdien, 12 val. 00 0 * * *
@ midnight tas pats kaip @daily
@ valandÄ
kiekvienÄ
valandÄ
pirmÄ
minutÄ: 0 * * * *
Jo naudojimas yra labai paprastas.
@ valandinis vartotojas /home/user/scripts/molestorecordatorio.sh @monthly user /home/user/scripts/backup.sh
Paskutinis, bet ne prasÄiausias:
âCronâ darbo valdymas
crontab failas
Pakeiskite esamÄ âcrontabâ failÄ vartotojo apibrÄĆŸtu failu
crontab -e
Redaguokite vartotojo crontab failÄ , kiekviena nauja eilutÄ bus nauja crontab uĆŸduotis.
crontab -l
IĆĄvardinkite visas vartotojo uĆŸduotis
crontab -d
IĆĄtrinkite vartotojo kryĆŸelÄŻ
crontab -c reĆŸ
Nurodo vartotojo crontab katalogÄ (jis turi turÄti vartotojo raĆĄymo ir vykdymo teises)
crontab -u vartotojas
prieĆĄdÄlis, skirtas tvarkyti kito vartotojo kraĆĄtovaizdÄŻ, pavyzdĆŸiai:
$ sudo crontab -l -u ĆĄaknis $ sudo crontab -e user2 #crontab -d -u vartotojas
Ć ÄŻ ÄŻrankÄŻ, kaip ir daugelÄŻ kitĆł, galima pamatyti iĆĄsamiau ir iĆĄsamiau: