Cron (Unix/Linux): Toistuvien tehtävien ajoitus ja crontab-opas

Cron (Unix/Linux) – kattava crontab-opas: opi ajoittamaan toistuvat tehtävät, crontab-syntaksi, esimerkit ja vinkit skriptien automatisointiin ja järjestelmän ylläpitoon.

Tekijä: Leandro Alegsa

Cron on tietokoneohjelma, jonka avulla tietokone voidaan saada tekemään tehtäviä tietyin aikavälein. Sitä käytetään UNIX-tietokoneiden käyttöjärjestelmissä ja UNIXia muistuttavissa käyttöjärjestelmissä, kuten Linuxissa.

Cronia voidaan käyttää useimpien toistuvien tehtävien ajoittamiseen. Sitä käytetään usein tietokoneen tai tietoverkon ylläpitoon tai hallintaan liittyvien tehtävien automatisointiin, vaikka sitä voidaan käyttää moniin muihinkin tehtäviin, kuten tiedostojen lataamiseen Internetistä ja sähköpostin lataamiseen tiettyinä aikoina tai päivinä.

Cron-tietokoneohjelman nimi tulee sanasta cron, joka tulee kreikan kielen sanasta χρόνος (chronos), joka tarkoittaa aikaa.

Cron asetetaan muokkaamalla tiedostoa nimeltä crontab (cron-taulukko). Tässä tiedostossa luetellaan tietokoneen suoritettavat tehtävät ja niiden suoritusajankohdat.

Miten crontab-tiedosto toimii

Crontab-rivillä määritellään ajoitus ja suoritettava komento. Perusmuoto (käyttäjän crontab) on viisi aikakenttää ja komento:

  • minuutti (0–59)
  • tunti (0–23)
  • päivä kuukaudesta (1–31)
  • kuukausi (1–12 tai nimi)
  • viikonpäivä (0–7, jossa 0 ja 7 = sunnuntai, tai nimi)
  • komento (suoritettava komento tai skripti)

Esimerkki: joka päivä klo 03:30 ajettava skripti:

30 3 * * * /usr/local/bin/varmuuskopiointi.sh

Erikoismerkinnät ja -merkkijonot

  • * = kaikki mahdolliset arvot
  • , = erottelija, esim. 1,15,30
  • - = välialue, esim. 1-5
  • / = askelväli, esim. */15 tarkoittaa joka 15. minuutti
  • Erikoisavaimet kuten @reboot, @daily, @hourly, @weekly, @monthly, @yearly (tai @annually) ja @midnight helpottavat yleisiä ajoituksia.

Esimerkkejä:

@daily /usr/local/bin/paivittaja.sh @reboot /usr/local/bin/kaynnista-palvelu.sh

Miten muokata, listata ja poistaa crontab

  • Muokkaus: crontab -e avaa käyttäjän crontabin muokattavaksi (käyttää oletustekstieditoria).
  • Listaus: crontab -l näyttää nykyisen käyttäjän crontabin.
  • Poisto: crontab -r poistaa käyttäjän crontabin.

Järjestelmän crontabit ja hakemistot

Lisäksi järjestelmässä on usein:

  • /etc/crontab — järjestelmätason crontab, jossa on ylimääräinen käyttäjä-kenttä kenttien jälkeen (aikakentät, käyttäjä, komento).
  • /etc/cron.d/ — hakemisto, johon voidaan lisätä palvelukohtaisia crontab-tiedostoja samankaltaisella rakenteella kuin /etc/crontab.
  • /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, /etc/cron.monthly/ — hakemistot, joiden sisällä olevat skriptit ajetaan vastaavan aikavälin mukaan.

Ympäristö ja käytännön vinkit

  • Cron käyttää usein rajoitettua ympäristöä: PATH voi olla lyhyt. Määritä tarvittaessa PATH crontabin alkuun tai käytä täysiä polkuja komennoissa, esim. /usr/bin/python3 /home/käyttäjä/script.py.
  • Voit asettaa ympäristömuuttujia crontabin yläosaan, esim. MAILTO="[email protected]", jolloin cron lähettää komennon stdout/stderr -sisällön sähköpostina.
  • Jos et halua sähköposteja, ohjaa ulostulo /dev/null: ... >/dev/null 2>&1.
  • Käytä täysiä polkuja tiedostoihin ja ohjelmiin, ja varmista, että skriptillä on suoritusoikeudet (chmod +x).
  • Erityishuomio: crontab:ssa merkki % tulkitaan uusiriviksi ja välittää se komennolle, joten jos komennossa esiintyy %, pitää sen usein pakoittaa tai käsitellä erikseen.

Kirjautuminen ja lokitus

Cronin suoritukset kirjautuvat yleensä järjestelmälokiin (esim. syslog / journalctl). Lokitiedoista voi nähdä onnistuneet ja epäonnistuneet ajot. Esimerkiksi journald-järjestelmässä voi etsiä cron-viestejä komennolla journalctl -u cron tai vastaavalla palvelun nimellä (jakelusta riippuen).

Oikeudet ja turvallisuus

  • Käyttäjä voi muokata omaa crontabiaan, mutta yleensä ei toisen käyttäjän crontabia ilman järjestelmänvalvojan oikeuksia.
  • Järjestelmän crontab- ja /etc/cron.d -tiedostojen muokkaus vaatii root-oikeudet.
  • Älä aja luottamuksellisia komentoja tai avaintietoja skripteissä ilman riittäviä käyttöoikeuksia ja suojausta.

Yleisiä ongelmia ja vianetsintävinkkejä

  • Komento ei suoritettu: tarkista cron-lokit, käytetyt polut ja suoritusoikeudet.
  • Ympäristöerot: testaa komento samassa ympäristössä kuin cron (esim. ajamalla sama komento suoraan sh -c 'komento' tai lisää lokirivejä skriptiin).
  • Ajoitus epäselvä: varmista kenttien järjestys ja käytetyt erikoismerkinnät.

Yhteenveto

Cron on kevyt ja luotettava tapa automatisoida aikataulutettuja tehtäviä UNIX- ja Linux-järjestelmissä. Oikein käytettynä se säästää aikaa ja vähentää manuaalisten tehtävien tarvetta, mutta vaatii huomiota ympäristöön, polkuihin ja lokitukseen, jotta skriptit toimivat odotetusti.

Kysymyksiä ja vastauksia

Q: Mikä on Cron?


V: Cron on tietokoneohjelma, jota käytetään tehtävien ajoittamiseen tietyin aikavälein.

K: Missä Cronia käytetään?


V: Cronia käytetään UNIX-tietokoneiden käyttöjärjestelmissä ja UNIXia muistuttavissa käyttöjärjestelmissä, kuten Linuxissa.

K: Millaisia tehtäviä Cronilla voi ajoittaa?


V: Useimmat toistuvat tehtävät voidaan ajoittaa Cronilla. Sitä käytetään usein tietokoneen tai tietoverkon ylläpitoon tai hallintaan liittyvien tehtävien automatisointiin, vaikka sitä voidaan käyttää moniin muihinkin tehtäviin, kuten tiedostojen lataamiseen Internetistä ja sähköpostin lataamiseen tiettyinä aikoina tai päivinä.

K: Mistä nimi Cron tulee?


V: Cron-tietokoneohjelman nimi tulee sanasta cron, joka tulee kreikan kielen sanasta χρόνος (chronos), joka tarkoittaa aikaa.

K: Miten Cron asetetaan?


V: Cron asetetaan muokkaamalla tiedostoa nimeltä crontab (cron-taulukko). Tässä tiedostossa luetellaan tietokoneelle suoritettavat tehtävät ja niiden suoritusajankohdat.

K: Mikä on crontab-tiedosto?


V: Crontab on tiedosto, jossa luetellaan tietokoneelle suoritettavat tehtävät ja niiden suoritusajankohdat.

K: Millaisiin toistuviin tehtäviin Cronta voidaan käyttää?


V: Useimmat tietokoneen tai tietoverkon ylläpitoon tai hallintaan liittyvät toistuvat tehtävät voidaan automatisoida Cronin avulla. Sitä voidaan käyttää myös moniin muihin tehtäviin, kuten tiedostojen lataamiseen Internetistä ja sähköpostin lataamiseen tiettyinä aikoina tai päivämäärinä.


Etsiä
AlegsaOnline.com - 2020 / 2025 - License CC3