Täielik juhend ülesannete automatiseerimiseks Croni abil Ubuntus

1. Mis on Cron?

Cron on ajapõhine ülesannete planeerija, mida kasutatakse Linuxi ja Unixi süsteemides. Seda kasutavad peamiselt süsteemiadministraatorid ja arendajad korduvate ülesannete automatiseerimiseks. Ubuntus on Cron vaikimisi installitud ning seda kasutatakse sageli serveri haldamiseks, varundamiseks ja skriptide perioodiliseks käivitamiseks.

Kuidas Cron töötab?

Cron töötab “crontab” faili kaudu, kuhu saab määrata käske, mis käivitatakse kindlatel aegadel või intervallidel. Crontabis on viis ajavälja, mille väärtuste abil saab täpselt määrata, millal ülesanne käivitatakse.

  • Minutid (0–59)
  • Tunnid (0–23)
  • Päev (1–31)
  • Kuu (1–12)
  • Nädalapäev (0–7, kus 0 ja 7 tähistavad pühapäeva)

Näiteks, kui soovite iga päev kell 5:00 varukoopia käivitada, kirjutaksite crontabi faili järgmise rea:

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

Sellisel viisil saab Croni abil ülesandeid regulaarselt ja automaatselt käivitada.

Kes peaks Croni kasutama?

Cron on hädavajalik tööriist süsteemiadministraatoritele, arendajatele, kes soovivad oma töövoogu automatiseerida, ning neile, kes peavad serveris regulaarselt skripte käivitama.

2. Kuidas seadistada Croni ülesandeid?

Crontabi muutmine

Croni ülesande seadistamiseks tuleb avada ja redigeerida kasutaja crontabi faili. Ubuntus saab seda teha käsuga:

crontab -e

Croni ülesannete põhisüntaks

Crontabi failis määratud ülesanne koosneb ajaväljadest ja käivitavast käsust. Tüüpiline Croni ülesande vorming on järgmine:

Minut Tund Päev Kuu Nädalapäev Käsk

Näiteks järgnev ülesanne loob iga päev kell 5:00 varukoopia /home/ kataloogist:

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

Crontabi salvestamine ja kontrollimine

Pärast ülesannete lisamist tuleb fail salvestada ja sulgeda. Praeguste Croni ülesannete vaatamiseks saab kasutada järgmist käsku:

crontab -l
年収訴求

3. Täpsem Croni ajastamine

Ülesannete käivitamine kohandatud ajavahemikega

Kui on vaja ülesandeid käivitada iga minut või iga 5 minuti järel, saab kasutada järgmist süntaksit:

  • Iga minut:
* * * * * /path/to/script.sh
  • Iga 5 minuti järel:
*/5 * * * * /path/to/script.sh

Ülesannete käivitamine kindlatel nädalapäevadel või kellaaegadel

Kui soovite käivitada skripti ainult kindlatel nädalapäevadel, näiteks esmaspäeviti kell 2:15 öösel, saate kasutada järgmist käsku:

15 2 * * 1 /path/to/script.sh

4. Vigade käsitlemine ja tõrkeotsing

Levinud Croni probleemid ja nende lahendused

Ülesanne ei käivitu

Kui Croni ülesanne ei tööta, kontrollige järgmisi aspekte:

  • Failiõigused: Kontrollige, kas skript või käsk on käivitatav.
  • Täielik tee: Croni ülesanded ei kasuta tavalist $PATH, seega määrake käsud täieliku failiteega.
/usr/bin/python3 /path/to/script.py

Logide kontrollimine

Croni tegevusi ja tõrkeid saab kontrollida süsteemilogidest:

grep CRON /var/log/syslog

5. Turvakaalutlused

Kasutajate juurdepääsu kontrollimine

Croni ülesannete käivitamise õigusi saab piirata kasutajatele, kasutades faile /etc/cron.allow ja /etc/cron.deny. Kui kasutaja on lisatud faili /etc/cron.allow, saab ta Croni kasutada.

echo "user_name" >> /etc/cron.allow

Sisselogimise turvalisus ja Croni ülesanded

Kui Croni ülesanne nõuab autentimist, tuleks kasutada SSH võtmete automatiseerimist või turvalist paroolihaldust.

6. Anacroni kasutamine: Harva käivitatavad ülesanded

Mis on Anacron?

Anacron on ajastustööriist, mis on mõeldud süsteemidele, mis ei ole pidevalt sisse lülitatud. Kui süsteem oli välja lülitatud ja planeeritud ülesanne jäi täitmata, siis Anacron käivitab selle järgmise sisselülitamise korral.

7. Praktilised Croni kasutusjuhud

Varundamise automatiseerimine

Croni saab kasutada regulaarsete varukoopiate tegemiseks:

0 2 * * * tar -zcf /var/backups/home_backup_$(date +%Y-%m-%d).tgz /home/

8. Kokkuvõte

Croni ja Anacroni abil saab ülesandeid automaatselt ja efektiivselt ajastada, parandades süsteemi töökindlust. Õige seadistusega saab vähendada halduskulusid ning tagada oluliste süsteemihoolduste automaatse täitmise. Proovige neid oma süsteemis ja kogege nende eeliseid ise!

侍エンジニア塾