„Cron“ yra efektyvus ir populiarus komandinės eilutės įrankis, naudojamas planuoti daugybę užduočių nurodytu laiku be vartotojo sąveikos. Suplanuotos užduotys yra žinomos kaip „cron“ užduotys, o „crontab“ yra failo, kuriame yra „cron“ užduotys, sąrašas.
Šiame straipsnyje mes paaiškinsime įvairiais pavyzdžiais, kurie rodo, kaip galite redaguoti ir naudoti „crontab“ failą, norėdami suplanuoti užduotis „Debian 10“ sistemoje.
„Cron“ gali būti naudojamas automatizuoti užduotis šiais atvejais:
- Bėgimo tvarkaraščio atsarginės kopijos,
- Disko vietos tikrinimas tam tikru intervalu,
- Veikia automatinė priežiūra,
- Periodiškai pašalinkite nepageidaujamus failus,
- Vykdoma tinklo diagnostika
Sintaksė
Suprasti jo sintaksę lengviau dirbti su „cron“. Bendroji „cron“ naudojimo sintaksė yra:
* * * * / kelias / į / scenarijus.shKiekvienas iš laukų atitinka šiuos dalykus:
Minutė (0–59) Valanda (0–24) Mėnesio diena (1–7) Metų mėnuo (1–12)„Day_of_the_Week“ (0–6) komanda
„Cron“ diegimas
„Cron“ yra iš anksto įdiegtas „Debian 10“. Tačiau jei jūsų sistemoje trūksta, paleiskite šią komandą, kad ją įdiegtumėte:
$ sudo apt install cronPeržiūrėti crontab
Norėdami peržiūrėti „crontab“ failą, naudokite šią komandą:
$ crontab -lNorėdami peržiūrėti konkretaus vartotojo crontab failą, naudokite šią komandą:
$ sudo crontab -u vartotojas -lRedaguoti crontab
Norėdami redaguoti dabartinio vartotojo crontab failą:
$ crontab -eNorėdami redaguoti konkretaus vartotojo crontab failą:
$ sudo crontab -u vartotojasJei redaguojate crontab failą pirmą kartą, jūsų bus paprašyta pasirinkti redaktorių:
Pasirinkus redaktorių, pasirodys toks langas.
Pavyzdžiui, norite paleisti atsarginį scenarijų pavadinimu „atsarginė kopija.sh “, esančią dokumentų kataloge kasdien 2:00 val. Norėdami tai padaryti, savo crontab faile turėsite pridėti šią eilutę:
0 2 * * * / Dokumentai / atsarginė kopija.sh
Ankstesniame lange galite pridėti savo „cron“ užduotis po vieną. Kai tai padarysite, išsaugokite ir išeikite iš failo, tada visi „cron“ darbai bus automatiškai vykdomi nustatytu intervalu.
Pašalinkite crontab
Norėdami pašalinti „crontab“ failą, įveskite šią komandą terminale:
$ crontab -rDabar apžvelkime keletą „Linux“ mašinų „cron“ darbų pavyzdžių.
1. Kiekvieną minutę atlikite „cron“ darbą
Norėdami atlikti „cron“ užduotį kiekvieną minutę, į „crontab“ failą įtraukite šią eilutę:
* * * * * / kelias / į / scenarijus.sh2. Atlikite „cron“ darbą kas 10 minučių
Norėdami suplanuoti „cron“ darbo vykdymą kas 10 minučių, pridėkite šią eilutę savo „crontab“ faile.
* / 10 * * * * / kelias / į / scenarijus.sh3. Konkrečiais mėnesiais atlikite „cron“ darbą
Suplanuoti „cron“ darbą tam tikrais mėnesiais e.g. Kovo, rugpjūčio, gruodžio mėnesiais pridėkite „cron“ užduotį savo „crontab“ faile taip:
* * * sausis, gegužė, rug * / path / to / script.sh4. Vykdykite „cron“ darbą pasirinktomis dienomis
Jei norėtumėte, kad jūsų darbas būtų atliktas pasirinktomis dienomis, tarkime, sekmadienį ir penktadienį 17 val., Jis turėtų atrodyti taip.
0 17 * * saulė, penktadienis / kelias / į / scenarijus.sh5. Atlikite „cron“ darbą kasdien tam tikru laiku
Norėdami suplanuoti „cron“ darbo vykdymą kasdien konkrečiu laiku, tarkime, 3 val., Pridėkite šią eilutę savo „crontab“ faile.
0 3 * * * / kelias / į / scenarijus.sh6. Konkrečią dieną atlikite „cron“ darbą
Norėdami suplanuoti „cron“ darbą vykdyti konkrečią dieną, tarkime, kiekvieną sekmadienį, pridėkite šią eilutę savo „crontab“ faile.
0 0 * * SUN / path / to / script.shDarbas vyks kiekvieną sekmadienį 00:00 val.
7. Vykdykite kelias užduotis atlikdami vieną užduotį
Norėdami suplanuoti kelias užduotis viename „cron“ darbe, pridėkite visus scenarijus „crontab“ faile, atskirdami juos kabliataškiu.
* * * * * / kelias / į / scenarijus1.sh; / path / to / script2.sh8. Vykdykite „cron“ darbą kiekvienas darbo diena
Norėdami suplanuoti „cron“ darbo vykdymą kiekvieną savaitės dieną, ty nuo pirmadienio iki penktadienio, turėsite pridėti šią eilutę savo crontab faile.
0 0 * * 1-5 / kelias / į / scenarijus.shDarbas vyks kiekvieną darbo dieną 00:00 val.
9. Atlikite „cron“ darbą du kartus per dieną
Norėdami suplanuoti darbą vykdyti du kartus per dieną e.g. 6 ir 15 val. turėsite pridėti šią eilutę savo crontab faile:
0 6,15 * * * / kelias / į / scenarijus.sh10. Kiekvieną valandą atlikite „cron“ darbą
Norėdami suplanuoti „cron“ užduotį vykdyti kas valandą 0 minutę, savo crontab faile turėsite pridėti šią eilutę:
0 * * * * / kelias / į / scenarijus.shPavyzdžiui, jei dabartinis laikas yra 14 val., Darbas vyks 15:00, 16:00 ir pan.
11. Vykdykite „cron“ darbą kas 3 valandas
Norėdami suplanuoti „cron“ darbo vykdymą kas 3 valandas 0 minutę, turėsite pridėti šią eilutę savo crontab faile:
0 * / 3 * * * / kelias / į / scenarijus.shPavyzdžiui, jei dabartinis laikas yra 14 val., Darbas vyks 17:00, 20:00 ir pan.
12. Vykdykite „cron“ darbą kiekvieno mėnesio pirmą 16 val
Jei norite suplanuoti, kad darbas bus vykdomas kiekvieno mėnesio pirmą dieną 16:00, turėsite pridėti šią eilutę savo crontab faile:
0 16 1 * * / kelias / į / scenarijus.shStygos „Crontab“
Taip pat galite naudoti šias eilutes, o ne ilgas pasikartojančias komandas.
@ kas valandą - vykdykite „cron“ darbą kas valandą, t.e. „0 * * * *“@ vidurnaktis - kiekvieną dieną vykdykite darbą.e. „0 0 * * *“
@ kasdien - tas pats kaip vidurnaktis
@ kas savaitę - kiekvieną savaitę vykdykite „cron“ darbą, t.e. „0 0 * * 0“
@ kas mėnesį - kiekvieną mėnesį atlikite „cron“ darbą, t.e. „0 0 1 * *“
@ kasmet - kiekvienais metais atlikite „cron“ darbą, t.e. „0 0 1 1 *“
@ kasmet - tas pats, kas @metai
@ reboot - paleiskite „cron“ darbą kiekviename įkrovime
Pavyzdžiui, norėdami paleisti „cron“ darbą kiekvieną dieną per pirmąją minutę ir pirmąją valandą, pridėkite šią eilutę:
@ kasdien / kelias / į / scenarijus.shPavyzdžiui, norint paleisti „cron“ užduotį kiekvieną kartą perkraunant serverį:
@reboot / path / to / script.shTai viskas, kas yra! Šiame straipsnyje mes sužinojome, kaip automatizuoti įvairias užduotis naudojant „Crontab“ Debian sistemoje. Naudodamiesi aukščiau pateiktais pavyzdžiais, galite suplanuoti bet kokio pobūdžio darbo inicijavimą be vartotojo sąveikos.