|
Lucaine objavljeno pred nekaj časa odlična vadnica o cron in crontab ki se mi zdi vredno deliti. Cron je nekakšen ekvivalent načrtovanim opravilom v sistemu Windows, samo da se z njim upravlja s terminala. Tisti, ki raje vizualni vmesnik doseže isti cilj, lahko to vidijo drug predmet. |
Kaj je cron?
Ime cron izvira iz grškega chronos, kar pomeni "čas". V operacijskem sistemu Unix je cron običajen upravitelj procesov v ozadju (demon), ki v rednih intervalih izvaja procese ali skripte (na primer vsako minuto, dan, teden ali mesec). Procesi, ki jih je treba izvesti, in čas, ko jih je treba izvesti, so določeni v datoteki crontab.
Como dela
Demon cron se začne od /etc/rc.d/ o /etc/init.d odvisno od razporeditve. Cron deluje v ozadju, vsako minuto preveri tabelo nalog crontab / etc / crontab o en / var / spool / cron v iskanju nalog, ki jih je treba opraviti. Kot uporabnik lahko v cron dodamo ukaze ali skripte z nalogami za avtomatizacijo nekaterih procesov. To je na primer koristno za avtomatizacijo posodobitve sistema ali dobrega varnostnega sistema.
Kaj je zdravilo Crontab?
Crontab je preprosta besedilna datoteka, ki hrani seznam ukazov, ki jih je treba izvesti v času, ki ga določi uporabnik. Crontab bo preveril datum in uro, ko naj bo izveden skript ali ukaz, dovoljenja za izvajanje in bo to opravil v ozadju. Vsak uporabnik ima lahko svojo datoteko crontab, pravzaprav / etc / crontab domneva se, da je datoteka korenskega uporabnika crontab, ko pa običajni uporabniki (in celo root) želijo ustvariti lastno datoteko crontab, bomo uporabili ukaz crontab.
Crontab je najlažji način za upravljanje nalog cron v več uporabniških sistemih, bodisi kot preprost sistemski uporabnik ali korenski uporabnik.
Uporaba crontaba
Začnemo s preprostim primerom.
Avtomatizirali bomo posodobitev sistema in odpravili nadležno "Vedno moram posodabljati in mi to ni všeč!"
Najprej bomo naredili scenarij. Ta skript bo poklical cron in bo vseboval vsa navodila, ki jih želimo narediti, zato ga je treba preizkusiti v več primerih in na več načinov, preden ga vključite v cron, tako preprost skript za posodobitev, kot je ta:
#! / bin / bash # primer posodobitve skripta # izberite svojo distribucijo # debian-ubuntu # apt-get update & apt-get -y upgrade #fedora #yum -y update #Arch #pacman --noconfirm -Syu
Odstranite # s svoje distribucijske črte. V primeru, da gre za Ubuntu / Debian, se začne z apt-get.
Skript shranimo kot update.sh (npr. Skripte shranite v vaš dom). Dovoljenja za izvajanje navedenega skripta spremenimo z:
chmod a + x ~ / scripts / update.sh
Skript izvedemo nekajkrat, da preverimo, ali vse deluje nemoteno, spremenimo, kar je potrebno (ne sme vsebovati napak, sicer bo cron napako ponavljal le znova in znova). Zdaj, da dodamo nalogo v naš crontab.
Dodajte naloge v crontab
Izvedbo crontaba zaženemo s crontab -e, v nekaterih distribucijah (kot je Ubuntu) pa imamo možnost, da izberemo urejevalnik besedil, ki ga želimo, ostalo nam ostane vi. Datoteka crontab bo videti nekako tako.
# mh uporabniški ukaz dom mon dow
kje:
- m ustreza minuti, ko bo skript izveden, vrednost se giblje od 0 do 59
- h natančen čas, se obravnava 24-urni format, vrednosti se gibljejo od 0 do 23, pri čemer je 0 12:00 polnoči.
- darilo se nanaša na dan v mesecu, na primer lahko določite 15, če želite zagnati vsakih 15 dni
- dow pomeni dan v tednu, lahko je številski (0 do 7, kjer sta 0 in 7 nedelja) ali prve 3 črke dneva v angleščini: pon, sreda, sreda, čet, pet, sobota, sonce.
- uporabnik definira uporabnika, ki bo izvršil ukaz, lahko je root ali drug uporabnik, če ima dovoljenja za izvajanje skripta.
- ukaz se nanaša na ukaz ali absolutno pot skripta, ki ga je treba izvesti, primer: /home/usuario/scripts/update.sh, če pokliče skript, mora biti izvedljiv
Da bi bili jasni, je pojasnjenih nekaj primerov nalog cron:
15 10 * * * uporabnik /home/user/scripts/update.sh
Vsak dan bo ob 10:15 zjutraj zagnal skript update.sh
15 22 * * * uporabnik /home/user/scripts/update.sh
Vsak dan bo ob 10:15 zagnal skript update.sh
00 10 * * 0 root apt-get -y posodobitev Root uporabnik
Posodobljeno bo vsako nedeljo ob 10:00
45 Posodobitev apt-get -y sončnega korena 10 * *
Root uporabnik bo objavil posodobitev vsako nedeljo (ne) ob 10:45
30 7 20 11 * uporabnik /home/usuario/scripts/updata.sh
20. novembra ob 7 bo uporabnik zagnal skript
30 7 11 11 uporabnik sonca /home/usuario/scripts/pastel_con_velitas.sh
11. novembra ob 7 in to je nedelja, bo uporabnik praznoval svojega sysadmina (torej mene)
01 * * * * uporabnik /home/usuario/scripts/molestorecordatorio.sh
Moteč opomnik vsako minuto vsake ure vsak dan (NE priporočljivo).
Z njimi je še vedno mogoče ravnati posebna območja:
30 17 * * 1,2,3,4,5
Ob 5 popoldan vsak dan od ponedeljka do petka.
00 12 1,15,28 * *
Ob 12. uri vsak prvi, petnajsti in 28. v mesecu (idealno za plačilne liste)
Če je to zmedeno, ročaj crontab posebni nizi za opredelitev teh obsegov.
@reboot Zaženi enkrat, ob zagonu
@letno deluje samo enkrat na leto: 0 0 1 1 *
@ letno enako kot @ leto
@monthly teče enkrat mesečno, prvi dan: 0 0 1 * *
@weekly Weekly prva minuta prve ure v tednu. 0 0 * * 0 ″.
@daily vsak dan, ob 12:00 AM 0 0 * * *
@ polnoči enako kot @daily
@ urno v prvi minuti vsake ure: 0 * * * *
Njegova uporaba je zelo preprosta.
@hourly user /home/user/scripts/molestorecordatorio.sh @monthly user /home/user/scripts/backup.sh @daily root apt-get update && apt-get -y upgrade
Nenazadnje:
Cron upravljanje delovnih mest
crontab
Zamenjajte obstoječo datoteko crontab z uporabniško določeno datoteko
crontab -e
Uredite uporabnikovo datoteko crontab, vsaka nova vrstica bo nova naloga crontab.
crontab -l
Naštejte vse uporabnikove naloge crontab
crontab -d
Izbrišite uporabnikov crontab
crontab -c r
Določa uporabnikov imenik crontab (ta mora imeti uporabnikova dovoljenja za pisanje in izvajanje)
uporabnik crontab -u
predpono za obdelavo crontaba drugega uporabnika, primeri:
$ sudo crontab -l -u root $ sudo crontab -e user2 #crontab -d -u uporabnik
To orodje, tako kot številna druga, je mogoče videti bolj poglobljeno in podrobneje v: