Croni või Croni töö on ajapõhine ajakava, mis on levinud Linuxi / Unixi süsteemides. See ajastab määratud kasutajaülesanded perioodiliselt kindla kuupäeva, kellaaja või intervallidega töötama. Enamik neist toimingutest on skriptid selliste funktsioonide täitmiseks nagu varukoopiad ja muu. Nende croni töökohtade loomiseks kasutame crontabi käske. Crontab on UNIX-i käsk / utiliit, mida kasutatakse croni tööde loomiseks ja haldamiseks.
Nagu näete allpool, on croni töö loomine ja muutmine üsna lihtne. Kõige hämmastavam on see, et pärast croni töö loomist või redigeerimist pole vaja croni ega isegi arvutit taaskäivitada. Salvestage fail lihtsalt ja teil on hea minna.
Cron Jobsi tavalised kasutusalad
- Riistvara aja määramine: võrgu aja protokolli kasutavad paljud arvutid süsteemi aja määramiseks, kuid see ei määra riistvara aega. Croni abil saate riistvara aja seada süsteemi aja järgi.
- Ülesannete ajastamine ja igapäevaste programmide käivitamine: Cron-teenuse abil saate käivitada paljusid süsteemiteenuseid, mis vajavad igapäevast viipa, näiteks Logwatch.
- Kataloogide automaatne puhastamine, varundusprogrammide käivitamine ja palju muud.
Croni käsu põhiosad
Crontabi standardne süntaks on järgmine:
a b c d e KASUTAJANIMI / tee / kuni / skripti väljund
1.Kellaaeg ja kuupäev koos töö korduvusega määratakse viie välja abil:
-
- a: Protokoll: (alates 0 - 59)
- b: Tööaeg: (alates 0 - 23 )
- c: Päevad: (alates 0 - 31 )
- d: Kuud: (alates 0 - 12 )
- e: Nädalapäevad: (alates 0 - 7. )
- a: Protokoll: (alates 0 - 59)
Märkus. Päevad algavad esmaspäevast. 0 ja 7 tähistavad pühapäeva
2. USERNAME
: Ärge unustage seda asendada oma kasutajanimega
3. Konkreetse asukoha ja skripti, mille cron käivitab, määrab kolmas segment:
/ path / to / script
4. Viimases jaotises määratletakse kasutajale töö lõpetamisel teatamine kui viis ülesannete jälgimiseks:
väljund
Kuid teie postkast võib olla täis väiksemaid ülesandeid, mida sageli kanaliseeritakse. Selle vältimiseks saate automaatse e-posti väljundi keelata, lisades oma croni käsule alloleva stringi:
> / dev / null 2> & 1 e.g a b c d e KASUTAJANimi / path / to / script> / dev / null 2> & 1
Lisaks kasutab cron veel nelja väärtust, mida kasutatakse mitme väärtuse määramiseks väljal. Nemad on:
- Tärn (*): Viitab kõigile välja väärtustele.
- Koma (,): Kasutage croni käsu väärtuste loendi eraldamiseks.
- Kriips (-): Määrake väärtuste vahemik.
- Kaldkriips (/): jagab väärtuse erinevateks sammudeks.
Croni töökohtade seadistamine
Crontabi käsud vastutavad croni tööde loomise ja muutmise eest, kuna croni faile ei tohiks otse redigeerida. Crontab määratleb, kuidas saate croni ülesandeid luua, muuta, loetleda, siluda, installida ja desinstallida.
Enne croni tööde alustamist on oluline tagada, et teie Linuxi töölaud või server oleks ajakohane, käivitades järgmised käsud:
sudo apt värskendus sudo apt uuendus
Kui teie süsteemis pole croni paketti installitud, installige see järgmise käsuga:
sudo apt-get install cron
Kuidas redigeerida crontabi faili?
Protsessi lõpuleviimiseks peate konfigureerima croni töö. Croni töö loomisel sisse loginud kasutaja saab automaatselt omanikuks. Seda saab muuta, luues töökoha omaniku, kes vastutab croni töö haldamise eest, nagu näeme sellest postitusest.
Crontabi konfiguratsioonifaili avamiseks sisseloginud kasutajale käivitage järgmine käsk:
crontab -e
Süsteem palub teil valida sobiva redaktori. Meie puhul valime esimese võimaluse (nano-redaktor).
Reale saate lisada ühe ajastatud ülesande vastavalt oma eelistustele.
Pärast ülesannete lisamist lõpetage faili salvestamine ja väljumine. Kõik pakutavad juhised loeb ja täidab cron-deemon. Muudatusi rakendatakse ka ilma süsteemi taaskäivitamata, kuna hoidlat värskendatakse automaatselt.
Redigeerige teise kasutaja crontab-i
Crontabi saab muuta erinevate kasutajate jaoks, kasutades allolevas süntaksis olevat käsku:
crontab -u muu_kasutajanimi -e
Kuidas kasutada crontab-käskudes erimärke
Märgid ja operaatorid dikteerivad teie süsteemi rohkem kohandama, kuna need laiendavad croni ülesande võimalusi.
- Kaldkriipsu kasutatakse ajajoone jagamiseks määratud sammudeks. Näiteks iga 30 minuti tagant varundamiseks võime kasutada järgmist:
* / 30 * * * *
- Tärni (*) kasutatakse kõigi käivitatavate väärtuste täitmiseks. Näiteks:
* / 15 ***
- Kriipsu (-) kasutatakse tegevuste vahemiku, näiteks päevade arvu määramiseks. Sest
Näiteks käivitame koodi igal tööpäeval kell 6 hommikul;
0 6 * * 1-5 / juur / varukoopia.sh
Siin tähistab 06 kella 6.00 1-5 tähistab päevade arvu (esmaspäevast reedeni).
- Koma määrab üksikud eksemplarid, millal kood peaks käima:
0 4 * * 2,4 / juur / varukoopia.sh
Ülaltoodud käsk täidab teie skripti koodi teisipäeval ja neljapäeval kell 4 hommikul.
- Samuti saate käskude veelgi kohandamiseks kombineerida erinevaid metamärke. Näiteks skripti käivitamiseks ülepäeviti kell 35 minutit pärast tunde saame kasutada järgmist käsku:
35 1-23 / 2 * * * / path / to / skript / skript.sh
1–23 määrab tundide vahemiku, / 2 määrab intervalliks iga teise tunni.
Croni valikud
- Loetlege kõik croni töökohad
Võimalik, et soovite oma süsteemis olevad croni tööd loetleda ilma crontabi konfiguratsioonifaili avamata. Seda saab teha oma terminali käivitades ja tippides alloleva käsu:
crontab -l
See käsk loetleb kõik teie süsteemis olevad croni tööd.
- Kustutage kõik crontab-tööd
Kõigi crontab-käskude kustutamiseks võite kasutada järgmist käsku:
crontab -r
- Croni töö kustutamine teise kasutaja jaoks.
crontab -r -u muu kasutajanimi
Kasuta stringe Crontabis
Stringid on arendajatele tohutult kasulikud tööriistad, kuna need väldivad koodisegmentide korduvat kirjutamist. Õnneks toetavad crontabs erinevad stringide väärtusi. Nad sisaldavad:
@ tund:
-sama mis - "0 * * * *" (täidab üks kord iga tund)@kesköö:
-sama mis - "0 0 * * *" (täidab üks kord iga kord päeval)@daily:
sama mis südaöö@ nädalas:
-sama mis - "0 0 * * 0" (käivitatakse üks kord iga kord nädal)@igakuine:
-sama mis - „0 0 1 * *“ (täidab üks kord iga kord kuu)@aastaselt:
-sama mis - „0 0 1 1 *“ (täidab üks kord iga kord aasta)@aastat:
sarnane @aastaga@reboot:
Teostatakse üks kord pärast iga taaskäivitamist / taaskäivitamist / käivitamist.
Hea näide; kui teil on varukript, mida soovite iga päev käivitada, kasutage järgmist käsku:
@daily / path / to / backup_script.sh
Croni töökohtade näited
Siin on loetelu peamistest croni töödest, mida saab alustamisel kasutada:
-
- Skripti käivitamiseks iga minut:
* * * * * / teie / skript / tee.sh
- Skripti käivitamiseks iga 40 minuti järel:
40 * * * * / teie / skript / tee.sh
- Iga tunni tagant skripti käitamiseks toimige järgmiselt
0 * * * * / teie / skript / tee.sh
- Skripti käivitamiseks igal keskööl:
0 0 * * * / teie / skript / tee.sh
- Skripti käivitamiseks iga 23 minuti järel pärast keskööd, kell 2 hommikul ja 4 hommikul:
23 0-23 / 2 * * * / teie / skript / tee.sh
- Skripti käivitamiseks kell 4.05 igal pühapäeval.
5 4 * * päike / teie / skript / tee.sh
- Nädala jooksul kell 22 stsenaariumi käivitamiseks.
0 22 * * 1-5 / teie / skript / tee.sh
- Skripti käivitamiseks 1. detsembril - keskööl.
0 0 0 12 * / teie / skript / tee.sh
- Käitada stsenaariumi laupäeval keskööl.
0 0 * * 6 / teie / skript / tee.sh
- Skripti käivitamiseks iga tund.
0 * * * * / teie / skript / tee.sh
- Skripti käivitamiseks iga minut:
Nende põhinäidete abil saate sügavamalt mõista järjestust ja seda, kuidas seda saab muuta.
Croni juurdepääsu piiramine
Me näeme, et croni töökohad võivad olla üsna kasulikud, eriti kui soovite oma ülesandeid automatiseerida. Kuid see võib olla ka riskantne, kui süsteem lubab igal kasutajal luua croni töö. Isegi kui see ei mõjuta isikuandmeid, võivad mõned croni töökohad võtta üsna palju süsteemiressursse, viivitades sellega arvutiga. Selliste stsenaariumide vältimiseks võib süsteemiadministraator (juurkasutaja) luua / etc / cron.lubama
või / etc / cron.eitada
fail, mis sisaldab ainult kasutajaid, kes seda saavad "loo / ei loo" croni töö.
The / etc / cron.lubama
fail sisaldab kasutajaid, kes saavad crontab-faile luua, muuta, kuvada või eemaldada. Kui seda faili pole, saavad kõik kasutajad luua ja hallata muid croni töid kui need, mis asuvad / etc / cron.eitada
faili. Kui ühtegi neist failidest pole, on crontabi käsu käivitamiseks vaja ülemkasutaja õigusi.
Nüüd, kui olete takistanud juurjuurtega kasutajatel croni töökohtade loomist, kui neil neid juba oli, võiksite kaaluda nende croni tööde lisamist root crontabi faili. Kuid siin on mõistatus - lisades oma croni töökohad juure crontabile, kas see ei käivita nende croni töid juurtena? Siit tuleb välja välja USERNAME tähtsus, mida käsitlesime ülal croni käsu süntaksis. Näiteks järgmine käsk:
0 * * * * fosslinux / path / to / skript.sh
Käivitatakse kasutaja "fosslinux" croni tööna ja mitte juurkasutajana.
Järeldus
Nüüd on teil selge juhend Croni tööde kasutamiseks oma süsteemi erinevate ülesannete automatiseerimiseks. See ei tohiks teid Startup-rakendustega segi ajada. Lihtsate skriptide proovimiseks ja automatiseerimiseks kasutage ülaltoodud näiteid. Aja jooksul saate kombineerida erimärke ja metamärke, et täita palju igapäevaseid ülesandeid. Kui te alles alustate, oleks tore lugeda meie postitust bashi skriptimise õpetuses koos näidetega, mis aitavad teil oma esimest skripti luua.