„Linux crontab“ komanda



crontab

Įjungta „Unix“ tipo operacinės sistemos, crontab komanda atveria redagavimo lentelę. „Cron“ lentelė yra užduočių, kurias sistemoje planuojama vykdyti reguliariais laiko intervalais, sąrašas.



Demonas, kuris skaito crontab ir vykdo komandas tinkamu laiku, vadinamas cron. Jis pavadintas graikų laiko dievo Kronoso vardu.

Šis puslapis apima GNU / „Linux“ versija crontab .

Sintaksė

  crontab  [  -u     user    ]    file    
  crontab  [  -u     user    ] [  -l  |  -r  |  -e  ] [  -i  ] [  -s  ]

Galimybės

failą Įkelkite crontab duomenis iš nurodyto failo. Jei failą yra brūkšnys (' - '), crontab duomenys yra nuskaitomi iš standartinė įvestis .
-u Vartotojas Nurodo naudotoją, kurio crontab turi būti peržiūrėtas ar pakeistas. Jei ši parinktis neteikiama, crontab atidaro bėgusio vartotojo crontab crontab . Pastaba: naudojant jos vartotojai gali suklaidinti crontab , taigi, jei jį naudojate jos , visada naudokite -u galimybė išvengti dviprasmybių.
-l Rodyti dabartinį crontab.
-r Pašalinkite dabartinį crontab.
-yra Redaguokite dabartinį „crontab“, naudodami redaktorių, nurodytą aplinkos kintamajame VIZUALUS arba REDAKTORIUS .
-i Taip pat kaip -r , bet prieš pašalindamas crontab pateikia vartotojui patvirtinimą „taip“ / „ne“.
-s Tik „SELinux“: pridedamas dabartinis „SELinux“ saugos kontekstas stygos kaip MLS_LEVEL Crontab failo nustatymas prieš redaguojant ar pakeičiant. Išsamios informacijos ieškokite savo „SELinux“ dokumentuose.

Apžvalga

The crontab komanda naudojama norint peržiūrėti ar redaguoti vykdytinų komandų lentelę kronas .

Kiekvienas jūsų sistemos vartotojas gali turėti asmeninį kontaktinį žodį.

„Crontab“ failai yra / var / ritė / (arba pakatalogį, pvz., / var / spool / cron / crontabs ), tačiau jie nėra tiesiogiai redaguojami. Vietoj to, jie yra redaguojami vykdant crontab .

„Cron“ komandų įrašai

Kiekvienas kronas komandos įraše crontab faile yra penki laiko ir datos laukai (po kurių eina a Vartotojo vardas , tik jei tai yra sistemos crontab failas), po kurio seka komanda.

Komandas vykdo kronas kai minutės, valandos ir mėnesio laukai atitinka dabartinį laiką ir bent vienas iš dviejų dienų laukų (mėnesio arba savaitės dienos) atitinka dabartinę dieną.

The kronas „deemon“ tikrina crontab kartą per minutę.

Pastaba



Niekada nesutampa nė vienas laikas, pvz., „Praleistos valandos“ vasaros taupymo „pavasario pirmyn“ dienomis. Dėl to „trūkstamu laiku“ suplanuoti darbai tuo metu nevykdomi. Dėl tos pačios priežasties laikas, atsirandantis daugiau nei vieną kartą taupant dienos šviesą (rudenį), verčia suderinamus darbus vykdyti du kartus.

Laiko ir datos laukai

srityje leistinos vertės
minutė 0 - 59
valandą 0 - 2. 3
mėnesio diena 1 - 31
mėnesį 1 - 12 (arba vardai; žr. toliau pateiktą pavyzdį)
Savaitės diena 0 - 7 ( 0 arba 7 yra sekmadienis arba vartokite vardus; žr. toliau)

Bet kurį iš šių laukų galima nustatyti žvaigždute ( * ), kuris reiškia „nuo pirmojo iki paskutinio“. Pavyzdžiui, jei norite dirbti kiekvieną mėnesį, įdėkite * viduje konors Mėnuo srityje.

Leidžiami skaičių diapazonai. Diapazonai yra du skaičiai, atskirti brūkšneliu. Nurodytas diapazonas yra imtinai; pavyzdžiui, 8–11 „valandų“ įraše nurodomas vykdymas 8, 9, 10 ir 11 valandomis.

Sąrašai yra leidžiami. Sąrašas yra skaičių (arba diapazonų) rinkinys, atskirtas kableliais. Pavyzdžiai: ' 1,2,5,9 ',' 0–4,8–12 '.

Žingsnio vertės gali būti naudojamos kartu su diapazonais. Pavyzdžiui, ' 0–23 / 2 ' viduje konors Valandos laukas reiškia „kas antrą valandą“. Veiksmai taip pat leidžiami po žvaigždute, taigi, jei norite pasakyti „kas dvi valandas“, galite naudoti „ * / du '.

Vardus taip pat galima naudoti laukuose „mėnuo“ ir „savaitės diena“. Naudokite pirmas tris konkrečios dienos ar mėnesio raides (didžiosios ir mažosios raidės). Vardų diapazonai ar sąrašai neleidžiami.

„Šeštasis“ laukas (likusi eilutės dalis) nurodo vykdomą komandą. Visa komandos eilutės dalis, iki a nauja linija arba % personažą, įvykdys / bin / sh arba apvalkalu, nurodytu „cronfile“ kintamajame SHELL. Procentiniai ženklai ( % ) komandoje, nebent pabėgti atgaliniu brūkšniu ( ), bus pakeisti į naujos eilutės simbolius ir visus duomenis po pirmojo % bus siunčiami į komandą kaip standartinę įvestį.

Atminkite, kad komandos vykdymo dieną galima nurodyti dviem laukais: mėnesio diena ir savaitės diena. Jei abu laukai yra ribojami (kitaip tariant, jie nėra * ), komanda bus paleista, kai kuris nors laukas atitiks dabartinį laiką. Pavyzdžiui, ' 30 4 1,15 * 5 „sukeltų komandą 4:30 val. kiekvieno mėnesio 1 ir 15 dienomis, taip pat kiekvieną penktadienį.

Crontab failas

Kiekviena crontab failo eilutė yra „aktyvi“ arba „neaktyvi“. „Aktyvi“ eilutė yra aplinkos nustatymas arba „cron“ komandos įrašas. „Neaktyvi“ eilutė yra viskas, kas ignoruojama, įskaitant komentarus.

Tuščios eilutės ir priekiniai tarpai bei skirtukai nepaisomi. Linijos, kurių pirmasis ne kosmoso simbolis yra a svaro ženklas ( # ) aiškinamos taip komentarus ir yra ignoruojami. Komentarai neleidžiami toje pačioje eilutėje kaip kronas komandos, nes jos aiškinamos kaip komandos dalis. Dėl tos pačios priežasties komentarai neleidžiami toje pačioje eilutėje kaip ir aplinkos kintamųjų nustatymai.

Aplinkos parametrai

Aplinkos nustatymo linija crontabe gali nustatyti aplinkos įvairovė nes kai kronas eina darbą.

Patarimas

Ne kiekvienoje sistemos „crontab“ juostoje gali būti aplinkos parametrai. „Ubuntu“ ir „Debian“ bei sistemose, naudojančiose GNU mcronas , aplinkos parametrus galima atlikti crontab. Kitose sistemose, tokiose kaip „Arch Linux“ ir „Fedora“, aplinkos parametrai neleidžiami. Norėdami gauti daugiau informacijos, patikrinkite savo platinimo dokumentaciją.

Aplinkos nustatymas crontab formatuojamas taip:

  name  =  value  

Erdvės aplink lygybės ženklą ( = ) yra neprivaloma, o visos vėlesnės nevedančiosios vietos vertė bus priskirtos vertės dalis vardas . Vertės eilutė gali būti dedama į kabutes (viengubas arba dvigubas, bet sutampantis), kad būtų išsaugoti priekiniai arba galiniai tušti laukai.

Kai kuriuos aplinkos kintamuosius nustato automatiškai kronas :

  • KALLA yra nustatytas į / bin / sh .
  • LOGNAME ir NAMAI yra nustatyti iš / etc / passwd crontab savininko eilutė. NAMAI ir KALLA gali būti nepaisoma vykdymo metu nustatymų crontab; LOGNAME o] Gal ir ne.
  • The LOGNAME kintamasis kartais vadinamas VARTOTOJAS ant BSD sistemas. Šiose sistemose VARTOTOJAS taip pat bus nustatytas.

Konfigūracija

Leidimas vartotojams atlikti „Cron“ darbus

„Cron“ užduotys gali būti leidžiamos arba neleidžiamos atskiriems vartotojams, kaip apibrėžta failuose /etc/cron.allow ir /etc/cron.deny . Jei cron.leisti egzistuoja, vartotojas turi būti nurodytas ten, kad jam būtų leista naudoti nurodytą komandą. Jei cron.leisti failas neegzistuoja, bet cron.deny failas, vartotojas turi ne būti sąraše, kad galėtumėte naudoti nurodytą komandą. Jei nė vieno iš šių failų nėra, tik supernaudotojas bus leista naudoti nurodytą komandą.

„Cron“ leidimus taip pat galima apibrėžti naudojant PAM („pluggable authentication module“) autentifikavimą, kad nustatytumėte vartotojus, kurie gali naudoti arba nenaudoti crontab ir sistema kronas darbo vietų. PAM konfigūracija yra /etc/cron.d/ .

Laikino katalogo konfigūravimas

Laikinas „cron“ darbų katalogas gali būti nustatytas toliau išvardytuose aplinkos kintamuosiuose. Jei šie kintamieji nėra apibrėžti, numatytasis laikinas katalogas / tmp yra naudojamas.

Konfigūracijos failai

Failas apibūdinimas
/etc/cron.allow Jei šis failas yra, vartotojai turi būti nurodyti šiame faile, kad galėtų paleisti „cron“ užduotis.
/etc/cron.deny Jei šis failas yra, vartotojai turi ne būti įrašyti į šį failą, kad būtų galima vykdyti „cron“ užduotis.

Jei nėra nė vieno konfigūracijos failo, „cron“ užduotis gali vykdyti tik super naudotojas.

Pavyzdžiai

Bėgimas crontab

crontab -e

Redaguokite savo crontab.

crontab -l

Rodykite („sąrašą“) savo „crontab“ turinį.

crontab -r

Pašalinkite „crontab“, efektyviai pašalindami visų „crontab“ darbų planavimą.

sudo crontab -u charles -e

Redaguokite vartotojo, pavadinto, šoninį skydelį charles . The -u parinkčiai reikalingos administratoriaus teisės, todėl komanda vykdoma naudojant sudo .

sudo crontab -l -u jeff

Peržiūrėkite vartotojo crontab jeffas .

sudo crontab -r -u sandy

Pašalinkite vartotojo crontab smėlėtas .

„Crontab“ įrašai

Toliau pateikiami įrašų, kurie gali būti įtraukti į trumpinį, pavyzdžiai.

Paleiskite apvalkalo scenarijų /home/melissa/backup.sh sausio 2 d. 6:15 val.

įrašyti garsą iš „YouTube“ vaizdo įrašo
15 6 2 1 * /home/melissa/backup.sh

Dienas ir mėnesius galima išvardyti pagal pavadinimą ( Pirmadienis ) arba santrumpa ( Jan ). Skaičio pradžioje esantys nuliai yra galiojantys, o tai padeda padaryti, kad keli įrašai būtų išrikiuoti vizualiai.

Pvz., Kitame pavyzdyje kiekvieną sausio pirmadienį, 12.01 val., Paleistas tas pats scenarijus, kaip ir aukščiau:

01 00 * Jan Monday /home/melissa/backup.sh

Bėk /home/carl/hourly-archive.sh kas valandą, valandą, nuo 9 val. ( 09 : 00 ) iki 6 val. ( 18 : 00 ), kiekvieną dieną:

00 09-18 * * * /home/carl/hourly-archive.sh

Tas pats, kas aukščiau, bet paleiskite jį kas dvidešimt minučių:

*/20 09-18 * * * /home/carl/hourly-archive.sh

Bėk /home/wendy/script.sh kiekvieną pirmadienį, 9 val. ir 6 val.

0 9,18 * * Mon /home/wendy/script.sh

Bėk / usr / local / bin / backup kiekvieną darbo dieną 10:30 val.

30 22 * * Mon,Tue,Wed,Thu,Fri /usr/local/bin/backup

prie - Suplanuokite komandą, kuri bus vykdoma tam tikru laiku.