Kaip redaguoti "Linux Crontab" failą darbo grafikams

Įvadas

Linux sistemoje yra "daemon", vadinamas "cron", kuris reguliariai paleidžia procesus.

Kaip tai veikia, patikrinkite tam tikrus jūsų sistemos aplankus, kad paleistumėte scenarijus. Pavyzdžiui, yra aplankas /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly ir /etc/cron.monthly. Taip pat yra failas vadinamas / etc / crontab.

Pagal numatytuosius nustatymus jūs galite tiesiog įdėti scenarijus į atitinkamus aplankus, kad jie būtų rodomi reguliariais intervalais.

Pvz., Atidarykite terminalo langą (paspaudę CTRL, ALT ir T) ir paleiskite šią ls komandą :

ls / etc / cron *

Pamatysite programų ar scenarijų, kurie paleidžiami kas valandą, kasdien, kas savaitę ir kas mėnesį, sąrašą.

Problema su šiais aplankais yra ta, kad jie yra šiek tiek neaiškūs. Pavyzdžiui, kasdien reiškia, kad scenarijus bus vykdomas vieną kartą per dieną, bet jūs neturite laiko, per kurį scenarijus bus paleisti tą pačią dieną.

Būtent čia atsiranda crontab failas.

Redaguodami "crontab" failą galite gauti scenarijų arba programą, kuri būtų paleista tikslią datą ir laiką, kurį norite paleisti. Pavyzdžiui, galbūt norėsite atsarginę kopiją savo failus kiekvieną vakarą 18 val.

Leidimai

Komandai crontab reikalaujama, kad vartotojas turėtų teises redaguoti crontab failą. Iš esmės yra du failai, naudojami tvarkant crontab leidimus:

Jei egzistuoja failas /etc/cron.allow, vartotojas, norintis redaguoti crontab failą, turi būti toje byloje. Jei failo cron.allow neegzistuoja, bet yra failas /etc/cron.deny, vartotojas negali egzistuoti toje byloje.

Jei egzistuoja abu failai, /etc/cron.allow pakeičia /etc/cron.deny failą.

Jei nėra vieno failo, tai priklauso nuo sistemos konfigūracijos, ar vartotojas gali redaguoti crontab.

Šakninis naudotojas visada gali redaguoti crontab failą. Galite naudoti komandą su, norėdami pereiti į root user arba sudo komandą paleisti komandą crontab.

Crontab failo redagavimas

Kiekvienas vartotojas, turintis leidimus, gali sukurti savo crontab failą. "Cron" komanda iš esmės ieško daugybės crontab failų egzistavimo ir paleidžia juos visus.

Norėdami patikrinti, ar turite crontab failą, paleiskite šią komandą:

crontab -l

Jei neturite crontab failo, pasirodys pranešimas "no crontab for ", priešingu atveju bus rodomas jūsų crontab failas (ši funkcija skiriasi nuo sistemos iki sistemos, kartais ji nieko nerodo ir kitais atvejais ji rodoma) " nereikia redaguoti šio failo ").

Norėdami sukurti ar redaguoti crontab failą paleiskite šią komandą:

crontab-e

Pagal nutylėjimą, jei nenustatyta numatytoji redaktorė, būsite paraginti pasirinkti numatytąjį redaktorių. Asmeniškai man patinka naudoti " nano", nes jis yra gana tiesiai į priekį, ir jis paleidžiamas iš terminalo.

Atsidariusiame faile yra daug informacijos, tačiau pagrindinė dalis yra pavyzdys prieš pasibaigus komentarų sekcijai (komentarus žymi eilutės, prasidedančios #).

# mh dom mon dow komanda

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Kiekvienoje crontab bylos eilutėje yra 6 informacijos vienetai:

Kiekvienam elementui (išskyrus komandą) galite nurodyti pakaitos simbolį. Pažvelkite į šį pavyzdį crontab eilutę:

30 18 * * * tar -zcf /var/backups/home.tgz/ home /

Ką pirmiau minėta komanda sako, yra 30 minučių, 18 valandų ir bet kuri diena, mėnuo ir savaitės savaitė paleidžia komandą zip ir talpina namų katalogą į / var / atsarginių kopijų aplanką.

Norėdami gauti komandą paleisti po 30 minučių per kiekvieną valandą, galiu paleisti šią komandą:

30 * * * * komanda

Norėdami gauti komandą paleisti kiekvieną minutę praėjusį 18 val., Galiu paleisti šią komandą:

* 18 * * * komanda

Todėl jūs turite būti atsargūs nustatydami savo crontab komandas.

Pavyzdžiui:

* * * 1 * komanda

Pirmiau nurodyta komanda kiekvieną savaitę kiekvieną valandą kiekvieną savaitę sausio mėn. Aš abejoju, kad tu nori.

Sausio sausio 1 d. 5 val. Paleiskite komandą, esančią toliau esančią komandą į crontab failą:

0 5 1 1 * komanda

Kaip pašalinti Crontab failą

Daugeliu atvejų jūs nenorėsite pašalinti crontab failo, bet galbūt norėsite pašalinti kai kurias eilutes iš crontab failo.

Tačiau jei norite pašalinti vartotojo crontab failą paleiskite šią komandą:

crontab -r

Saugesnis būdas tai padaryti yra paleisti šią komandą:

crontab-i

Tai užduoda klausimą "ar esate įsitikinęs?" prieš išimdami crontab failą.