Cron & crontab, paaiĆĄkino

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

Susijęs straipsnis:
Pamoka: ÄŻdiekite .tar.gz ir .tar.bz2 paketus

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!“

kaip
Susijęs straipsnis:
Komandos sistemai paĆŸinti (nustatyti aparatinę ÄŻrangą ir kai kurias programinės ÄŻrangos konfigĆ«racijas)

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:

AčiĆ« Lucainui!