Mustand: sisu ei ole veel tehniliselt ega keeleliselt täielikult kontrollitud ega toimetatud.

Peatüki vaade

Linux/Unix/macOS käsurea kiirõpik

Praegu loed peatükki `cron` ja ajastatud tööd, mis kuulub osasse Osa IV: Tekst, otsing ja automatiseerimine.

cron ja ajastatud tööd

Selles peatükis vaatame, kuidas panna lihtne käsk regulaarselt käima.

Loogika

Ajastatud töö tähendab, et käsk jookseb kindlal ajal ilma selleta, et peaksid ise terminalis kohal olema.

See on kasulik näiteks siis, kui tahad:

  • teha regulaarset varukoopiat
  • kirjutada logisse mõõtmist
  • käivitada puhastus- või sünkroonkäigu

Alguses piisab täiesti sellest, kui mõistad kolme asja:

  1. kus ajastus kirjas on
  2. et kasutada tuleb sageli täisradasid
  3. et väljund tasub logifaili suunata

Kiirspikker

  • crontab -l näitab sinu croni ridu
  • crontab -e avab cron-tabeli muutmiseks
  • viis ajavälja tähendavad minut, tund, kuupäev, kuu ja nädalapäev
  • */15 * * * * käsk tähendab “iga 15 minuti järel”

Käivita need käsud

Kõige ohutum esimene samm on lihtsalt vaadata olemasolevat croni:


crontab -l

Näidisrea võid kõigepealt kirjutada faili:


cat > naide.cron <<'EOF'
*/15 * * * * /bin/date >> "$HOME"/cron-naide.log 2>&1
EOF
cat naide.cron

Kui tahad selle päriselt paigaldada, siis järgmine samm oleks:


crontab naide.cron
crontab -l

Cronirea kuju

Lihtne cronirida näeb välja nii:


*/15 * * * * /bin/date >> "$HOME"/cron-naide.log 2>&1

Väljad vasakult paremale:

  1. minut
  2. tund
  3. kuupäev
  4. kuu
  5. nädalapäev
  6. käsk

Näite tähendus on:

  • iga 15 minuti järel
  • käivita /bin/date
  • lisa väljund faili cron-naide.log

Miks täisrajad tähtsad on

Croni keskkond on tavaliselt palju väiksem kui sinu tavaline interaktiivne shell.

See tähendab, et käsk, mis töötab terminalis nii:


date

tasub cronis kirjutada pigem nii:


/bin/date

Sama kehtib sageli ka skriptide, Pythoni ja teiste tööriistade kohta.

Väljundi suunamine

Kui cron töötab taustal, siis on väga kasulik suunata väljund faili:


>> "$HOME"/cron-naide.log 2>&1

See tähendab:

  • lisa tavaline väljund faili lõppu
  • lisa samasse faili ka veaväljund

Kui töö ei käi ootuspäraselt, on see logifail esimene koht, kust vaadata.

Testi käsku enne käsitsi

Väga hea reegel on:

enne kui paned käsu croni, käivita ta käsitsi täpselt samas kujus.

Näiteks:


/bin/date >> "$HOME"/cron-naide.log 2>&1
tail -n 5 "$HOME"/cron-naide.log

Kui see ei tööta käsitsi, ei tööta see tõenäoliselt ka cronis.

Linux ja macOS

Croni põhimõte on sarnane, aga tänapäeva süsteemides on olemas ka teised ajastusmehhanismid:

  • Linuxis kohtad sageli ka systemd timereid
  • macOS-is on loomulikum süsteem launchd

Sellegipoolest on cron väga hea esimene mudel, mille pealt ajastatud töid mõista.

Minitest

  1. Vaata, kas sinu kasutajal on juba mõni cronirida olemas.
  2. Kirjuta üks näidisrea fail, mis käivitaks käsu iga 15 minuti järel.
  3. Käivita sama käsk enne käsitsi.
  4. Seleta ühe lausega, miks täisrada on cronis tähtis.