„Cron“ arba „Cron“ užduotis yra laiko planuotojas, įprastas „Linux / Unix“ sistemose. Jis suplanuoja nurodytas vartotojo užduotis vykdyti periodiškai fiksuota data, laiku ar intervalais. Dauguma šių užduočių yra scenarijai, skirti atlikti tokias funkcijas kaip atsarginės kopijos ir dar daugiau. Norėdami sukurti šias „cron“ darbo vietas, naudojame „crontab“ komandas. „Crontab“ yra UNIX komanda / įrankis, naudojamas kuriant ir tvarkant „cron“ užduotis.
Kaip pamatysite žemiau, sukurti ir redaguoti „cron“ darbą yra gana paprasta. Nuostabiausia yra tai, kad sukūrus ar redagavus „cron“ darbą nereikia iš naujo paleisti „cron“ ar net kompiuterio. Tiesiog išsaugokite failą ir viskas gerai.
Dažnas „Cron Jobs“ naudojimas
- Aparatūros laiko nustatymas: Tinklo laiko protokolą daugelis kompiuterių naudoja nustatydami sistemos laiką, tačiau nenustato aparatūros laiko. Naudodami „cron“, galite nustatyti aparatūros laiką atsižvelgdami į sistemos laiką.
- Užduočių planavimas ir programų, vykdančių kasdienes programas, planavimas: naudodamiesi „cron“ paslauga, galite paleisti daugelį sistemos paslaugų, kurioms reikalinga kasdienė raginimas, pvz., „Logwatch“.
- Automatinis katalogo valymas, atsarginių programų paleidimas ir daug daugiau.
Pagrindinės cron komandos dalys
Standartinė crontab sintaksė yra tokia:
a b c d e VARTOTOJO VARDAS / kelias / į / scenarijaus išvestis
1.Laikas ir data kartu su darbo pasikartojimu nurodomi penkiuose laukuose:
-
- a: Protokolas: (Nuo 0 - 59)
- b: Valandos: (nuo 0 - 23 )
- c: Dienos: (Nuo 0 - 31 )
- d: Mėnesiai: (nuo 0 - 12 )
- e: Savaitės dienos: (nuo 0 - 7. )
- a: Protokolas: (Nuo 0 - 59)
Pastaba: dienos prasideda pirmadieniu. 0 ir 7 reiškia sekmadienį
2. VARTOTOJO VARDAS
: Nepamirškite pakeisti savo vartotojo vardo
3. Konkrečią vietą ir scenarijų, kurį turi atlikti „cron“, nurodo trečiasis segmentas:
/ kelias / į / scenarijus
4. Paskutiniame skyriuje naudotojui skirtas pranešimas apie užduotį apibrėžiamas kaip būdas stebėti užduotis:
produkcija
Tačiau jūsų gautuosiuose gali būti daug smulkių užduočių, kurios dažnai nukreipiamos. Norėdami to išvengti, galite išjungti automatinį el. Pašto išvestį, pridėdami žemiau esančią eilutę prie savo cron komandos:
> / dev / null 2> & 1 e.g a b c d e VARTOTOJO VARDAS / kelias / į / scenarijus> / dev / null 2> & 1
Be to, „cron“ naudoja dar keturias reikšmes, naudojamas nurodant kelias lauko reikšmes. Jie yra:
- Žvaigždutė (*): Nurodo visas lauko reikšmes.
- Kablelis (,): Naudokite norėdami atskirti reikšmių sąrašą „cron“ komandoje.
- Brūkšnys (-): Nurodykite verčių diapazoną.
- Į priekį pasviręs brūkšnys (/): padalija vertę į skirtingus žingsnius.
„Cron“ darbo vietų nustatymas
„Crontab“ komandos yra atsakingos už „cron“ darbų kūrimą ir redagavimą, nes „cron“ failai neturėtų būti tiesiogiai redaguojami. Crontab apibrėžia, kaip galite kurti, redaguoti, sąrašus, derinti, įdiegti ir pašalinti „cron“ užduotis.
Prieš pradedant „cron“ darbus, būtina įsitikinti, kad „Linux“ darbalaukis ar serveris yra atnaujinti, vykdydami toliau nurodytas komandas:
sudo apt atnaujinti
Jei jūsų sistemoje nėra įdiegtas „cron“ paketas, įdiekite jį naudodami toliau pateiktą komandą:
sudo apt-get install cron
Kaip redaguoti crontab failą?
Norėdami užbaigti procesą, turėsite sukonfigūruoti „cron“ užduotį. Vartotojas, prisijungęs, kai sukuriama „Cron“ užduotis, automatiškai tampa savininku. Tai galima pakeisti sukūrus darbo savininką, kuris bus atsakingas už „cron“ darbo valdymą, kaip matysime šiame įraše.
Norėdami atidaryti „crontab“ konfigūracijos failą šiuo metu prisijungę vartotojui, vykdykite toliau nurodytą komandą:
crontab -e
Sistema paragins pasirinkti tinkamą redaktorių. Mūsų atveju pasirinksime pirmąjį variantą (nano redaktorius).
Kiekvienoje eilutėje galite pridėti vieną suplanuotą užduotį pagal savo pageidavimus.
Pridėję užduotis, užbaikite išsaugodami failą ir išeikite. „Cron“ demonas perskaitys ir vykdys visas pateiktas instrukcijas. Pakeitimai bus taikomi net nepaleidus sistemos iš naujo, nes saugykla atnaujinama automatiškai.
Redaguoti kito vartotojo crontab
„Crontab“ gali būti redaguojamas skirtingiems vartotojams naudojant žemiau esančioje sintaksėje esančią komandą:
crontab -u kitas_naudotojo vardas -e
Kaip naudoti specialiuosius simbolius crontab komandose
Veikėjai ir operatoriai diktuoja daugiau jūsų sistemos pritaikymo, nes jie praplečia „cron“ užduoties galimybes.
- Pasvirasis brūkšnys naudojamas laiko eilutei padalyti į nurodytus veiksmus. Pavyzdžiui, norėdami atlikti atsarginę kopiją kas 30 minučių, galime naudoti:
* / 30 * * * *
- Žvaigždutė (*) naudojama įvykdyti visas reikšmes. Pavyzdžiui:
* / 15 ***
- Brūkšnys (-) naudojamas nustatyti veiklos sritį, pavyzdžiui, dienų skaičių. Dėl
Pavyzdžiui, vykdydami kodą kiekvieną darbo dieną 6 val., mes naudosime;
0 6 * * 1-5 / šaknis / atsarginė kopija.sh
Čia 06 reiškia 6 val. 1–5 reiškia dienų skaičių (nuo pirmadienio iki penktadienio).
- Kablelis nurodo atskirus atvejus, kai kodas turėtų būti vykdomas:
0 4 * * 2,4 / šaknis / atsarginė kopija.sh
Aukščiau nurodyta komanda įvykdys jūsų scenarijaus kodą antradienio ir ketvirtadienio 4 val.
- Taip pat galite derinti įvairius pakaitos simbolius, kad dar labiau pritaikytumėte komandas. Pvz., Norėdami įvykdyti scenarijų kas antrą dieną, praėjus 35 valandoms po valandos, galime naudoti toliau pateiktą komandą:
35 1-23 / 2 * * * / kelias / į / scenarijus / scenarijus.sh
1-23 nurodo valandų intervalą, / 2 nustato intervalą kas antrą valandą.
„Cron“ parinktys
- Išvardinkite visus „cron“ darbus
Galbūt norėsite išvardyti „cron“ užduotis savo sistemoje, neužrakindami „crontab“ konfigūracijos failo. Tai galima padaryti paleisdami terminalą ir įvesdami žemiau esančią komandą:
crontab -l
Ši komanda išvardija visus jūsų sistemoje esančius „cron“ darbus.
- Ištrinkite visus „crontab“ darbus
Norėdami ištrinti visas „crontab“ komandas, galite naudoti toliau pateiktą komandą:
crontab -r
- Ištrinkite „Cron“ užduotį kitam vartotojui.
crontab -r -u kitas vartotojo vardas
„Crontab“ naudokite stygas
Stygos yra nepaprastai naudingos priemonės kūrėjams, nes jos vengia kartoti kodo segmentų rašymą. Laimei, crontabs palaiko įvairias styginių vertes. Jie įtraukia:
@ valandą:
-tas pats kaip - „0 * * * *“ (Vykdo kartą per valandą)@vidurnaktis:
-tas pats kaip - „0 0 * * *“ (Vykdo kartą per dieną)@ kasdien:
tas pats kaip vidurnaktis@ kas savaitę:
-tas pats kaip - „0 0 * * 0“ (Vykdo kartą kas savaitę)@ mėnesį:
-tas pats kaip - „0 0 1 * *“ (Vykdo kartą per mėnesį)@ kasmet:
-tas pats kaip - „0 0 1 1 *“ (Vykdo kartą per metus)@ metai:
panašus į @metai@reboot:
Vykdoma vieną kartą po kiekvieno perkrovimo / perkrovimo / paleidimo.
Geras pavyzdys; jei turite atsarginį scenarijų, kurį norite paleisti kiekvieną dieną, naudokite toliau pateiktą komandą:
@daily / path / to / backup_script.sh
„Cron“ darbų pavyzdžiai
Čia pateikiamas pagrindinių „cron“ darbų, kuriuos galima naudoti pradedant, sąrašas:
-
- Norėdami paleisti scenarijų kiekvieną minutę:
* * * * * / jūsų / scenarijus / kelias.sh
- Norėdami paleisti scenarijų kas 40 minučių:
40 * * * * / jūsų / scenarijus / kelias.sh
- Norėdami paleisti scenarijų kiekvieną valandą:
0 * * * * / jūsų / scenarijus / kelias.sh
- Norėdami paleisti scenarijų kiekvieną vidurnaktį:
0 0 * * * / jūsų / scenarijus / kelias.sh
- Norėdami paleisti scenarijų kas 23 minutes po vidurnakčio, 2 ir 4 val. Kiekvieną dieną:
23 0-23 / 2 * * * / jūsų / scenarijus / kelias.sh
- Norėdami paleisti scenarijų 4.05 kiekvieną sekmadienį.
5 4 * * saulė / tavo / scenarijus / kelias.sh
- Savaitės 22 val. Paleisti scenarijų.
0 22 * * 1-5 / jūsų / scenarijus / kelias.sh
- Norėdami paleisti scenarijų gruodžio 1 d. - vidurnaktį.
0 0 0 12 * / jūsų / scenarijus / kelias.sh
- Šeštadienį vidurnaktį paleisti scenarijų.
0 0 * * 6 / jūsų / scenarijus / kelias.sh
- Kiekvieną valandą paleisti scenarijų.
0 * * * * / jūsų / scenarijus / kelias.sh
- Norėdami paleisti scenarijų kiekvieną minutę:
Pateikdami šiuos pagrindinius pavyzdžius, galėsite giliau suprasti seką ir kaip ją galima modifikuoti.
„Cron“ prieigos ribojimas
Mes matome, kad „cron“ darbai gali būti labai naudingi, ypač kai norite automatizuoti savo užduotis. Tačiau taip pat gali būti rizikinga, jei sistema leidžia bet kuriam vartotojui sukurti „cron“ darbą. Net jei tai neturi įtakos asmens duomenims, kai kuriems „cron“ darbams gali prireikti gana daug sistemos išteklių, taigi atsilieka nuo kompiuterio. Norėdami išvengti tokių scenarijų, sistemos administratorius (root vartotojas) gali sukurti / etc / cron.leisti
arba / etc / cron.neigti
failą, kuriame yra tik galintys vartotojai „kurti / nekurti“ cron darbas.
The / etc / cron.leisti
faile yra vartotojai, kurie gali kurti, redaguoti, rodyti ar pašalinti crontab failus. Jei šio failo nėra, visi vartotojai gali kurti ir tvarkyti kitas nei „CRON“ užduotis / etc / cron.neigti
failą. Jei nėra nė vieno iš šių failų, norint paleisti komandą „crontab“, reikalingos vartotojo teisių.
Dabar, kai neleidote ne root vartotojams kurti „cron“ darbo vietų, jei jie jau turėjo, galite apsvarstyti galimybę įtraukti „cron“ užduotis į šakninį „crontab“ failą. Bet čia yra galvosūkis - ar pridėjus savo „cron“ užduotis prie šaknies „crontab“, ar tai neveikia jų „cron“ darbai kaip šakniniai? Na, čia ateina USERNAME lauko, kurį aptarėme aukščiau „cron“ komandos sintaksėje, svarba. Pavyzdžiui, toliau nurodyta komanda:
0 * * * * fosslinux / path / to / scenarijus.sh
Vykdys kaip vartotojo „fosslinux“ cron darbas, o ne kaip pagrindinis vartotojas.
Išvada
Dabar turite aiškų „Cron“ užduočių naudojimo vadovą, kad automatizuotumėte įvairias jūsų sistemos užduotis. Tai neturėtų jūsų painioti su „Startup“ programomis. Norėdami išbandyti ir automatizuoti paprastus scenarijus, naudokite aukščiau pateiktus pavyzdžius. Laikui bėgant, galite sujungti specialius simbolius ir pakaitalus, kad atliktumėte daug kasdieniškesnių užduočių. Jei dar tik pradedate, būtų puiku perskaityti mūsų įrašą „bash“ scenarijų pamokoje su pavyzdžiais, kurie padės jums sukurti pirmąjį scenarijų.