Cron — UNIX/Linux ajastaja ja crontab: korduvate ülesannete automatiseerimine

Õpi Croni ja crontabi: praktiline UNIX/Linux ajastaja korduvate ülesannete automatiseerimiseks, crontab-süntaks, näited ja parimad praktikad.

Autor: Leandro Alegsa

Cron on väike kuid võimas programm UNIX‑ja Linux‑sarnastes operatsioonisüsteemides, mis võimaldab käivitada käske või skripte automaatselt kindlatel kellaaegadel või korduvate ajavahemike järel. Seda kasutatakse laialdaselt näiteks Linux masina tööde ajastamiseks, haldustööde automatiseerimiseks ja igapäevaste rutiinide täitmiseks ilma käsitsi sekkumiseta.

Croni saab kasutada enamiku korduvate ülesannete ajastamiseks. Tavapärased kasutusnäited on süsteemi hooldustööde ajastamine, varunduste sooritamine, logifailide puhastamine, failide allalaadimine internetist või e-kirjade regulaarselt kontrollimine ja allalaadimine kindlatel kellaaegadel või kuupäevadel.

Sõna cron on tuletatud kreeka keelest (kellː χρόνος) — vt ka chronos —, mis tähendab aega.

Crontab — cron'i konfiguratsioonifail

Croni tööde loetelu hoitakse failis nimega crontab (cron table). Igal kasutajal võib olla oma crontab ning süstemil on tavaliselt ka süsteemilised crontabid (/etc/crontab, /etc/cron.d/ jt). Kasutaja crontabi redigeerimiseks kasutatakse käsku crontab -e, tööd üles loetlemiseks crontab -l ning eemaldamiseks crontab -r.

Crontabi põhisüntaks

Iga crontab'i rida koosneb viiest ajaväljast ja seejärel käivitatavast käsust:

  • minut (0–59)
  • tund (0–23)
  • päev kuus (1–31)
  • kuu (1–12)
  • nädalapäev (0–7, kus 0 või 7 = pühapäev)

Pärast neid välju kirjutatakse käsk või skript, mida cron käivitab. Näide:

30 2 * * * /usr/local/bin/backup.sh

Selle ridade järgi käivitab cron skripti /usr/local/bin/backup.sh iga päev kell 02:30.

Võimalused ja süntaksi laiendused

  • Loend: 1,15,30 — täpsed väärtused.
  • Vahemik: 1-5 — kõik väärtused vahemikus.
  • Sammud: */5 minutite puhul iga 5 minuti järel.
  • Kommenteerimine: read, mis algavad #, on kommentaarid.
  • Special strings: @reboot, @daily, @weekly, @monthly, @hourly, @yearly. Näide: @reboot /usr/local/bin/startup.sh.

Kasutusnäited

  • Iga 5 minuti järel: */5 * * * * /usr/bin/php /home/user/script.php
  • Iga päev kell 03:00: 0 3 * * * /usr/local/bin/daily-job.sh >> /var/log/daily-job.log 2>&1
  • Iga kuu esimese päeva kell 04:30: 30 4 1 * * /usr/local/bin/monthly-report.sh
  • Taaskäivitamisel üks kord: @reboot /usr/local/bin/on-reboot.sh

Praktilised nõuanded ja parimad tavad

  • Kasutage käskudes alati täispikki teid (nt /usr/bin/python3), sest cron'i keskkond sisaldab sageli piiratud PATH'i.
  • Seadistage vajalikud keskkonnamuutujad crontabi ülaosas (nt SHELL=/bin/bash, PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin).
  • Suunake väljundid logifaili (> /path/to/log 2>&1), vastasel juhul saadetakse viga e‑postiga root‑kasutajale või prügikasti.
  • Et vältida sama töö paralleelset käivitamist, kasutage lukustamist, näiteks flock või skripti sees kontrolli PID faili abil.
  • Püüdke mitte ajastada keerulisi või pikaajalisi töid üheaegselt palju masinatel — jaotage koormust või kasutage järjestust.
  • Vältige tööde jooksutamist rootina, kui see pole vajalik; andke skriptidele vajalikud õigused ja käivitage sobiva kasutaja crontabist.

Süsteemide ja logimise detailid

Süsteemsed crontabid asuvad tavaliselt kaustades nagu /etc/crontab ja /etc/cron.d/. Croni logisündmusi salvestatakse enamasti süsteemilogidesse (nt /var/log/cron või süsteemi syslog kaudu). Vigade uurimiseks vaadake neid logisid või saatke väljundid käsitsi logi failidesse.

Turvalisus ja alternatiivid

Cron on tõhus, kuid piiratud — kaasaegsetes süsteemides võib olla sobivam kasutada systemd timers, mis pakuvad paremat sõltuvuste haldust ja juhtimist. Croni puhul jälgige failide õigusi, ärge salvestage tundlikke paroole otse crontab'i ja jälgige, millised kasutajad saavad crontabi redigeerida (/etc/cron.allow, /etc/cron.deny).

Kaheaastane kontrollnimekiri kiireks kasutuselevõtuks

  • Redigeeri oma crontab: crontab -e
  • Kontrolli tööde nimekirja: crontab -l
  • Testi käsu käsitsi enne ajastamist
  • Kasu: kasuta täielikke teid ja logi väljundid
  • Kasuta lukustamist (flock) ja väldi rooti, kui võimalik

Cron on lihtne, usaldusväärne ja tõhus vahend korduvate ülesannete automatiseerimiseks. Õige seadistuse ja tavadega saab sellega hallata laia valikut töid — alates väikestest skriptidest kuni süsteemitasandi ülesanneteni.

Küsimused ja vastused

K: Mis on Cron?


V: Cron on arvutiprogramm, mida kasutatakse ülesannete ajastamiseks kindlatel ajavahemikel.

K: Kus kasutatakse Croni?


V: Croni kasutatakse UNIX arvutite operatsioonisüsteemides ja UNIXile sarnastes operatsioonisüsteemides, nagu Linux.

K: Milliseid ülesandeid saab Croni abil planeerida?


V: Enamikku korduvaid ülesandeid saab Croniga planeerida. Seda kasutatakse sageli arvuti või arvutivõrgu hoolduse või haldamisega seotud ülesannete automatiseerimiseks, kuigi seda saab kasutada ka paljude muude ülesannete jaoks, näiteks failide allalaadimiseks internetist ja e-posti allalaadimiseks konkreetsetel aegadel või kuupäevadel.

K: Millest tuleneb nimi Cron?


V: Arvutiprogrammi Cron nimi tuleneb sõnast cron, mis tuleneb kreekakeelsest sõnast χρόνος (chronos), mis tähendab aega.

K: Kuidas on Cron seadistatud?


V: Croni seadistamine toimub faili nimega crontab (croni tabel) redigeerimisega. Selles failis on loetletud konkreetsed ülesanded, mida arvuti peab täitma, ja millal need ülesanded peaksid toimuma.

K: Mis on crontab?


V: Crontab on fail, milles on loetletud konkreetsed ülesanded, mida arvuti peaks käivitama, ja millal need ülesanded tuleks käivitada.

K: Millisteks korduvateks ülesanneteks saab Cronroni kasutada?


V: Enamikku arvuti või arvutivõrgu hoolduse või haldamisega seotud korduvaid ülesandeid saab Croni abil automatiseerida. Seda saab kasutada ka paljude muude ülesannete jaoks, näiteks failide allalaadimine internetist ja e-kirjade allalaadimine kindlatel aegadel või kuupäevadel.


Otsige
AlegsaOnline.com - 2020 / 2025 - License CC3