- „Crontab Linux“ leidžia automatiškai planuoti užduotis tam tikru laiku.
- Crontab failo struktūra apima tokius laukus kaip minutės, valandos ir komandos.
- Išvestis ir klaidas galima nukreipti, kad būtų geriau valdoma užduotis.
- Labai svarbu patikrinti maršrutus ir leidimus, kad būtų išvengta klaidų vykdant.
Kas yra „Crontab Linux“?
„Crontab“ „Linux“ sistemoje yra esminė funkcija sistemos administratoriams ir pažengusiems „Linux“ vartotojams. Tai užduočių planuoklė, leidžianti automatiškai vykdyti komandas ar scenarijus tam tikru laiku arba reguliariais intervalais. „Crontab“ naudoja specialų failą, kad apibrėžtų užduotis ir jų atlikimo laiką.
Pradiniai nustatymai
Prieš pradėdami planuoti užduotis su Crontab Linux, turite žinoti pagrindus ir tinkamai sukonfigūruoti aplinką.
„Crontab“ diegimas „Linux“.
Norėdami pradėti, įsitikinkite, kad jūsų sistemoje įdiegtas Crontab. Daugumoje „Linux“ platinimų jis jau yra įtrauktas, bet jei jo neturite, galite lengvai jį įdiegti naudodami šią komandą:
sudo apt-get install cron
Įdiegę galite patikrinti, ar paslauga sukurta ir veikia:
systemctl status cron
Crontab failo struktūra
„Crontab“ naudoja specialų failą suplanuotoms užduotims saugoti. Šis failas atitinka tam tikrą struktūrą. Štai apžvalga:
| Laukas | aprašymas | Priimtos vertybės |
|---|---|---|
| protokolas | Valandos minutė (0–59) | 0-59 |
| Horas | Paros laikas (0–23) | 0-23 |
| Mėnesio diena | Mėnesio diena (1-31) | 1-31 |
| Mėnuo | Mėnuo (1-12 arba mėnesio pavadinimas) | 1–12 d. arba sausio, vasario, …, gruodžio mėn |
| Darbo diena | Savaitės diena (0-6) | 0-6 val. sekmadienį, pirmadienį, …, šeštadienį |
| Comando | Įsakymas vykdyti | Scenarijaus ar komandos kelias |
Aukščiau esančioje lentelėje rodomi laukai, sudarantys Crontab failą, ir kiekvieno lauko priimtos reikšmės.
Praktiniai pavyzdžiai
Dabar, kai žinote pagrindinę Crontab failo struktūrą, pažvelkime į keletą praktinių užduočių planavimo pavyzdžių.
Kasdienė užduotis konkrečiu laiku
Įsivaizduokite, kad norite kurti atsargines failų kopijas kiekvieną dieną 2 val. Jį galite suplanuoti taip:
30 14 * * * /path/to/copy-command.sh
Šiame pavyzdyje „30“ reiškia minutes, „14“ – valandas, o žvaigždutės kituose laukuose reiškia, kad užduotis bus vykdoma kiekvieną dieną ir kiekvieną mėnesį.
Savaitės namų darbai sekmadieniais
Jei norite vykdyti užduotį tik sekmadieniais 9:00 val., galite tai padaryti taip:
0 9 * * 0 /path/to/task-command.sh
Pirmoje vietoje esantis laukas „0“ reiškia minutes, „9“ – valandas, o „0“ paskutiniame lauke nurodo, kad užduotis bus vykdoma tik sekmadieniais.
Mėnesio užduotis pirmąją mėnesio dieną
Tarkime, kad turite mėnesio užduotį, kuri turi būti vykdoma pirmąją kiekvieno mėnesio dieną 3:00:
0 3 1 * * /path/to/monthly-command.sh
Šiuo atveju „0“ žymi minutes, „3“ – valandas, o „1“ – mėnesio dieną.
Triukai ir patarimai
Išvesties peradresavimas
Planuojant užduotis su Linux Crontab, svarbu valdyti užduočių išėjimą. Galite nukreipti standartinę išvestį ir klaidą į failą, kad galėtumėte peržiūrėti vėliau:
30 14 * * * /path/to/copy-command.sh > /path/to/output-file.log 2>&1
Ši komandų eilutė nukreipia standartinę išvestį į failą „output-file.log“, o klaidos išvestį – į tą patį failą.
Crontab failo redagavimas
Norėdami redaguoti Crontab failą, galite naudoti šią komandą:
crontab -e
Failas bus atidarytas numatytojoje teksto rengyklėje, kurioje galėsite pridėti, keisti arba ištrinti suplanuotas užduotis.
Išplėstinė automatizacija naudojant „Crontab Linux“.
Iki šiol apžvelgėme Linux Crontab pagrindus ir kaip suplanuoti paprastas užduotis. Dabar panagrinėkime pažangų automatizavimą ir keletą naudingų metodų.
Vykdykite užduotis pasirinktiniais intervalais
Crontab leidžia vykdyti užduotis pasirinktiniais intervalais. Pavyzdžiui, jei norite vykdyti užduotį kas 15 minučių, galite tai padaryti taip:
*/15 * * * * /path/to/task-command.sh
Žvaigždutė po „/15“ minučių lauke reiškia, kad užduotis bus vykdoma kas 15 minučių.
Sujunkite datas ir laiką
Norėdami suplanuoti tikslias užduotis, galite derinti datas ir laiką. Pavyzdžiui, jei norite, kad užduotis būtų vykdoma sausio 15 d. 3 val., galite tai padaryti taip:
30 15 15 1 * /path/to/task-command.sh
Tvarkaraščio pamainų vengimas
Planuojant užduotis svarbu atsižvelgti į laiko pokyčius. „Crontab Linux“ leidžia išvengti laiko nukrypimo problemų naudojant UTC, o ne vietinį laiką. Norėdami tai padaryti, Crontab faile galite nustatyti laiko juostą:
TZ=UTC 30 14 * * * /path/to/task-command.sh
Tai užtikrins, kad užduotis bus vykdoma tuo pačiu metu, nepaisant vietinio laiko pasikeitimų.
Trikčių šalinimas ir dažnos klaidos
Užduočių planavimas naudojant „Crontab Linux“ yra galingas, tačiau jame taip pat gali kilti klaidų. Štai keletas patarimų, kaip pašalinti įprastas problemas.
Patikrinkite komandų kelią
Viena iš dažniausiai pasitaikančių klaidų yra neteisingo kelio komandos ar scenarijaus, kurį norite paleisti, nurodymas. Įsitikinkite, kad kelias yra teisingas ir failas yra vykdomas.
Patikrinkite vykdymo leidimus
Jei jūsų užduotys nevykdomos, patikrinkite, ar failai ir scenarijai turi tinkamus vykdymo leidimus. Galite naudoti komandą chmod nustatyti atitinkamus leidimus.
Peržiūrėkite žurnalo failą
Jei kyla problemų dėl užduoties, patikrinkite žurnalo failą, kurį nurodėte Crontab. Ten rasite išsamią informaciją apie klaidas.
Išvada
Šiame straipsnyje aptarėme „Crontab Linux“ ir kaip jį naudoti efektyviam užduočių planavimui. Nuo diegimo iki išplėstinio užduočių planavimo ir trikčių šalinimo – dabar turite įrankius, reikalingus užduotims automatizuoti „Linux“ sistemoje . Taip pat galite sužinoti apie kitas susijusias temas, tokias kaip planavimas ir jo svarba automatizavime.