
Mitä on cron-työ? Määritelmä, esimerkit ja vertailu eräajoon
Oletko koskaan miettinyt, miten palvelin osaa suorittaa tiettyjä tehtäviä automaattisesti keskellä yötä ilman, että kukaan on painamassa nappia? Taustalla on usein kevyt mutta tehokas työkalu nimeltä cron-työ.
Käyttöjärjestelmät: Unix-tyyppiset (Linux, macOS) ·
Ensimmäinen julkaisu: 1975 ·
Suunniteltu automatisoimaan: järjestelmän ylläpito ja ajastetut tehtävät ·
Ajastustarkkuus: Minuutista vuositasolle
Pikakatsaus
- Cron on aikaan perustuva tehtävien ajoittaja Unix-tyyppisille käyttöjärjestelmille (Wikipedia, avoin tietosanakirja)
- Nimi tulee kreikan sanasta chronos, joka tarkoittaa aikaa (Wikipedia, avoin tietosanakirja)
- Cron kehitettiin 1970-luvulla Bell Labsilla (Wikipedia, avoin tietosanakirja)
- Cron-daemonin tarkkaa suoritusmekanismia (esim. kuinka usein se tarkistaa ajastuksia) ei ole täysin standardoitu kaikissa käyttöjärjestelmissä (man7.org, Linux-manuaalisivut)
- Eri jakeluversiot (Vixie cron, cronie, anacron) käyttäytyvät hieman eri tavoin (Red Hat, Linux-jakelun ylläpitäjä)
- 1975: Cron-palvelun ensimmäinen versio julkaistiin Bell Labsilla (Wikipedia, avoin tietosanakirja)
- 1980-luku: Cron yleistyi Unix-järjestelmissä ja siitä tuli osa POSIX-standardia (IBM, AIX-järjestelmädokumentaatio)
- Nykyään: Cron-työt ovat olennainen osa Linux-palvelinten hallintaa ja web-kehitystä (Splunk, data-analytiikan alusta)
- Pilvipalvelut, kuten Google Cloud Scheduler, tarjoavat cron-yhteensopivia ajastuspalveluita (Google Cloud Docs, pilvipalvelun dokumentaatio)
- Konttoriympäristöt (Docker, Kubernetes) käyttävät cron-tyylisiä ajastuksia tehtävien automatisointiin (Kubernetes, konttoriorkestraation dokumentaatio)
Mitä cron-työ tarkoittaa?
Cron-työn määritelmä
- Cron-työ on ajastettu tehtävä, jonka cron-palvelu suorittaa automaattisesti tiettynä aikana tai tietyin väliajoin Unix-tyyppisissä käyttöjärjestelmissä (Hostinger, web-hostingin ja palvelinten oppaita).
- Cron-palvelu (cron-daemon, usein nimeltä crond) lukee crontab-tiedostoja ja käynnistää niissä määritetyt komennot (Hostinger, web-hostingin ja palvelinten oppaita).
- Jokainen crontab-tiedoston rivi vastaa yhtä ajastettua tehtävää (SitePoint, web-kehityksen oppaita).
Cron-työ on kuin keittiön ajastin: asetat sille ajan ja tehtävän, ja se hoitaa loput – ilman että sinun tarvitsee vahtia kelloa. Suomalaiselle järjestelmänvalvojalle tämä tarkoittaa sitä, että rutiinit kuten lokien siivous tai varmuuskopiot voi unohtaa koneen huoleksi.
Cron-työ on siis ajastin, joka suorittaa tehtävät ilman valvontaa – tärkein työkalu järjestelmänvalvojalle.
Miksi nimi on cron?
- Nimi cron tulee kreikan sanasta chronos (χρόνος), joka tarkoittaa aikaa (Wikipedia, avoin tietosanakirja).
- Ensimmäinen cron-versio julkaistiin vuonna 1975 Bell Labsilla osana Unix-käyttöjärjestelmää (Wikipedia, avoin tietosanakirja).
- Alkuperäisen cronin kirjoitti Ken Thompson, yksi Unixin luojista (Wikipedia, avoin tietosanakirja).
Vaikka nimi kuulostaa tekniseltä, se on suora viittaus ajan käsitteeseen. Kyse on siis kirjaimellisesti aika-ajurista.
Mikä on esimerkki cron-työstä?
Yksinkertainen cron-lauseke
- Cron-lausekkeen perusmuoto on:
minuutti tunti kuukaudenpäivä kuukausi viikonpäivä komento(Hostinger, web-hostingin ja palvelinten oppaita). - Esimerkki:
0 3 * * * /usr/bin/backup.sh– suorittaa komentotiedoston joka päivä kello 3.00 (SitePoint, web-kehityksen oppaita). - Tähti (
*) tarkoittaa kaikkia mahdollisia arvoja – esimerkiksi minuuttikentässä se tarkoittaa, että tehtävä ajetaan joka minuutti (Hostinger, web-hostingin ja palvelinten oppaita).
Suomalaisessa Linux-palvelimessa tyypillinen cron-työ ajaa varmuuskopion joka yö kello 2.00. Lauseke 0 2 * * * /usr/local/bin/backup.sh on monelle järjestelmänvalvojalle tuttu näky.
Cron-työ esimerkki: varmuuskopiointi
- Kello 2.00 joka yö:
0 2 * * * /usr/local/bin/backup.sh– ajaa varmuuskopioskriptin (SitePoint, web-kehityksen oppaita). - Joka maanantai kello 5.00:
0 5 * * 1 /usr/local/bin/weekly-report.sh– tuottaa viikkoraportin (DigitalOcean, pilvipalvelun ohjeartikkelit). - Joka kuun ensimmäinen päivä:
0 0 1 * * /usr/local/bin/monthly-cleanup.sh– siivoaa vanhat lokit (DigitalOcean, pilvipalvelun ohjeartikkelit).
Minkä tahansa toistuvan tehtävän voi ajastaa cron-työnä. Tämä vapauttaa ihmisen muistamasta suorittaa sitä manuaalisesti.
Mitä eroa on cron-työllä ja eräajolla?
Cron-työn ominaisuudet
- Cron-työt toistuvat ajastetusti – esimerkiksi joka päivä kello 14.00 (Splunk, data-analytiikan alusta).
- Ne on suunniteltu erityisesti aikaperusteiseen toistoon (Hostinger, web-hostingin ja palvelinten oppaita).
- Tyypillisiä käyttökohteita: varmuuskopiointi, järjestelmän päivitys, lokien siivous (Splunk, data-analytiikan alusta).
Eräajon ominaisuudet
- Eräajot (batch jobs) suoritetaan ilman käyttäjän vuorovaikutusta, usein suuria tietomääriä kerralla (IBM, z/OS-järjestelmädokumentaatio).
- Ne voivat olla kertaluonteisia tai käynnistää toisistaan riippuvia tehtäväketjuja (IBM, z/OS-järjestelmädokumentaatio).
- Eräajot eivät välttämättä toistu samalla kellonlyömällä – ne voivat käynnistyä esimerkiksi silloin, kun järjestelmän kuormitus on alhainen (Red Hat, Linux-jakelun ylläpitäjä).
Kolme keskeistä eroa yhdessä taulukossa:
Cron-työt ja eräajot palvelevat osin samaa tarkoitusta, mutta niiden käyttötapa ja ajoituslogiikka eroavat merkittävästi – alla oleva vertailu tekee eron näkyväksi.
| Ominaisuus | Cron-työ | Eräajo |
|---|---|---|
| Käynnistysperuste | Aikataulu (kellonaika/päivä) | Tapahtuma, resurssien vapautuminen tai aikataulu |
| Toistuvuus | Toistuva automaattisesti | Usein kertaluonteinen tai sarja |
| Tietomäärä | Yleensä pieni tai keskikokoinen | Usein suuri (massakäsittely) |
| Käyttöympäristö | Unix/Linux-palvelimet | Suurkoneet (mainframe), pilvi, tietovarastot |
| Virheenkäsittely | Sähköposti-ilmoitus, loki | Työjonon hallinta, uudelleenyritykset, riippuvuudet |
The pattern: cron-työ sopii parhaiten kevyisiin, toistuviin rutiineihin – eräajo raskaisiin, kertaluonteisiin tai ketjutettuihin prosesseihin.
Miten cron-työ luodaan linuxissa?
- Avaa crontab komennolla
crontab -e. Ensimmäisellä kerralla järjestelmä kysyy, mitä tekstieditoria haluat käyttää (nano, vim, emacs). Järjestelmänlaajuiset tehtävät määritellään tiedostossa/etc/crontab, jossa on lisäksi käyttäjäkenttä (Hostinger, web-hostingin ja palvelinten oppaita; DigitalOcean, pilvipalvelun ohjeartikkelit; Red Hat, Linux-jakelun ylläpitäjä). - Kirjoita cron-lauseke muodossa
minuutti tunti päivä kuukausi viikonpäivä komento. Erikoismerkit:*(kaikki),,(luettelo),-(vaihteluväli),/(askelväli). Esimerkki:0 2 * * * /usr/bin/backup.sh– joka päivä kello 2.00 (Hostinger, web-hostingin ja palvelinten oppaita; SitePoint, web-kehityksen oppaita). - Tallenna ja sulje tiedosto. Cron lataa uuden aikataulun automaattisesti.
- Testaa tehtävä suorittamalla komento manuaalisesti:
/usr/bin/backup.sh. Tarkista cronin lokit:grep CRON /var/log/syslog(Debian/Ubuntu) taijournalctl -u cron(systemd-järjestelmät). Näet lokit myös tiedostosta/var/log/cron(RHEL/CentOS) (Hostinger; DigitalOcean; Red Hat).
Kun olet lisännyt rivin ja tallentanut tiedoston, cron lataa uuden aikataulun automaattisesti. Tämän jälkeen tehtävä suoritetaan määritettynä aikana.
Miltä cron-työ näyttää?
Cron-lausekkeen rakenne
- Viisi aikakenttää + komento – tässä järjestyksessä:
minuutti (0-59),tunti (0-23),kuukaudenpäivä (1-31),kuukausi (1-12),viikonpäivä (0-7)(0 ja 7 tarkoittavat sunnuntaita) (Hostinger, web-hostingin ja palvelinten oppaita). - Esimerkki Google Cloud Schedulerista:
*/2 * * * *– joka toinen minuutti (Google Cloud Docs, pilvipalvelun dokumentaatio). - Toinen esimerkki:
0 0-12/2 * * *– kahden tunnin välein keskiyöstä keskipäivään (Google Cloud Docs, pilvipalvelun dokumentaatio).
Esimerkki cron-lausekkeista
Viisi yleistä cron-lauseketta, jotka jokaisen Linux-käyttäjän kannattaa tuntea:
| Lauseke | Tarkoitus | Käyttökohde |
|---|---|---|
0 2 * * * |
Joka päivä kello 2.00 | Yölliset varmuuskopiot |
*/5 * * * * |
Joka 5. minuutti | Valvonta- ja seurantaskriptit |
0 0 * * 1 |
Joka maanantai keskiyöllä | Viikoittaiset raportit |
0 0 1 * * |
Joka kuun 1. päivä keskiyöllä | Kuukausittaiset siivoukset |
0 6 * * 5 |
Joka perjantai kello 6.00 | Viikkopäivitykset ja huolto |
Tämän rakenteen oppimalla hallitset 90 % kaikista cron-työn ajastustarpeista.
Mitä cron-työ on ohjelmoinnissa?
Cron-työn käyttö web-kehityksessä
- Web-sovellukset käyttävät cron-työtä esimerkiksi sähköpostien automaattiseen lähetykseen, välimuistin tyhjennykseen ja istuntojen siivoukseen (Splunk, data-analytiikan alusta).
- PHP-sovelluksissa cron ajaa taustaskriptejä, jotka käsittelevät lomakkeiden lähetyksiä tai päivittävät tietokannan tilastoja (DigitalOcean, pilvipalvelun ohjeartikkelit).
- Suosittu käyttötapa:
curl-kutsu joka päivä kello 8.00 lähettää aamun koosteraportin (SitePoint, web-kehityksen oppaita).
Cron-työn rooli sovelluksissa
- Ohjelmoinnissa cron-työt suorittavat taustalla toistuvia tehtäviä ilman, että käyttäjän tarvitsee odottaa (Hostinger, web-hostingin ja palvelinten oppaita).
- Ne ovat korvaamattomia erityisesti silloin, kun sovelluksen täytyy käsitellä suuria tietomääriä hiljaisina tunteina (Splunk, data-analytiikan alusta).
- Yhdistelmä cron + skripti = automaatio, joka toimii vuosia ilman ylläpitoa – kunhan lauseke on oikein.
The trade-off: cron-työ on kevyt ja yksinkertainen, mutta se ei sovellu reaaliaikaisiin tai kompleksisiin työnkulkuihin – niihin tarvitaan erillisiä työnhallintajärjestelmiä.
Kun rakennat vaikkapa suomalaista verkkokauppaa, cron-työllä voit ajastaa tilausvahvistusten lähetyksen, varastosaldojen päivityksen ja vanhojen ostoskorien siivouksen – kaikki ilman, että kukaan kirjoittaa riviäkään koodia uudelleen.
Cron-työ on korvaamaton web-kehityksessä taustaprosessien automatisointiin.
Vahvistetut faktat ja avoimet kysymykset
Vahvistetut faktat
- Cron on aikaan perustuva tehtävien ajoittaja Unix-tyyppisille käyttöjärjestelmille (Wikipedia, avoin tietosanakirja).
- Cron-työt on nimetty kreikan sanasta chronos (Wikipedia, avoin tietosanakirja).
- Cron-lauseke koostuu viidestä aikakentästä ja komennosta (Hostinger, web-hostingin ja palvelinten oppaita).
- Cron kehitettiin 1970-luvulla Bell Labsilla (Wikipedia, avoin tietosanakirja).
- Cron-työt automatisoivat rutiinitehtäviä kuten varmuuskopiot ja järjestelmän ylläpidon (Splunk, data-analytiikan alusta).
Mikä on epäselvää
- Cron-daemonin tarkkaa suoritusmekanismia (esim. kuinka usein se tarkistaa ajastuksia) ei ole täysin dokumentoitu kaikissa käyttöjärjestelmissä (man7.org, Linux-manuaalisivut).
- Eri cron-toteutukset (Vixie cron, cronie, anacron) voivat käyttäytyä eri tavoin samalla lausekkeella (Red Hat, Linux-jakelun ylläpitäjä).
- Cron-työn käyttäytymistä sekuntikynnetyillä ja korkean kuormituksen tilanteissa ei ole standardoitu (IBM, AIX-järjestelmädokumentaatio).
Lainauksia asiantuntijoilta
“Cron on aikaan perustuva tehtävien ajoittaja. Ajastettua tehtävää kutsutaan cron-työksi.”
– Wikipedia, avoin tietosanakirja
“Cron-työt ovat ohjelmia, jotka suorittavat tehtäviä automaattisesti palvelimilla, varmistaen tärkeiden rutiinitehtävien suorituksen.” Cron-työt ovat ohjelmia, jotka suorittavat tehtäviä automaattisesti palvelimilla, varmistaen tärkeiden rutiinitehtävien suorituksen, ja voit lukea lisää aiheesta Lue lisaa aiheesta report civicledger.co.uk.
“Cron-työt ovat olennainen työkalu jokaisen järjestelmänvalvojan työkalupakissa. Ne hoitavat toistuvat tehtävät luotettavasti ja vapauttavat aikaa tärkeämpään työhön.”
“Crontab-jokainen rivi vastaa yhtä ajastettua tehtävää. Tämä yksinkertainen rakenne tekee cronista yhden Unixin pitkäikäisimmistä työkaluista.”
Yhteenveto
Cron-työ on yksi niistä tekniikan peruspilareista, jotka pysyvät samoina vuosikymmenestä toiseen – ei siksi, että se olisi hieno tai uusi, vaan siksi, että se ratkaisee yksinkertaisen ongelman täsmällisesti. Suomalaiselle kehittäjälle tai järjestelmänvalvojalle cron-työn hallinta on taito, joka maksaa itsensä takaisin jokaisessa ylläpitotehtävässä. Kun seuraavan kerran ajastat varmuuskopion tai lokien siivouksen, tiedät tarkalleen, mitä tapahtuu: cron-daemon lukee crontabiasi, vertaa sitä kelloon ja käynnistää komentosi – aivan kuten se on tehnyt vuodesta 1975 lähtien.
Aiheeseen liittyvää: Peruskanavat netin kautta – katso TV ilman antennia | Opas · Hex Color Picker – Nopea opas HEX-värien löytämiseen
Usein kysytyt kysymykset
Voiko cron-työn suorittaa manuaalisesti?
Kyllä. Voit ajaa cron-työn komennon suoraan komentoriviltä testataksesi sitä – esimerkiksi /usr/bin/backup.sh. Tämä ei kuitenkaan päivitä cronin aikataulua, vaan suorittaa tehtävän vain kerran.
Miten cron-työn lokit tarkistetaan?
Lokit löytyvät tyypillisesti tiedostosta /var/log/syslog (Debian/Ubuntu) tai /var/log/cron (RHEL/CentOS). Systemd-järjestelmissä käytetään komentoa journalctl -u cron. Voit myös ohjata cron-työn ulostulon erilliseen lokitiedostoon lisäämällä >> /polku/loki.log 2>&1.
Onko cron-työ turvallinen?
Cron itsessään on turvallinen, mutta virheellisesti määritelty cron-työ voi aiheuttaa tietoturvariskejä. Älä koskaan aja skriptejä, jotka käsittelevät käyttäjän syötteitä ilman asianmukaista validointia. Käytä aina pienimpiä oikeuksia – älä aja tehtäviä pääkäyttäjänä, jos tavallisen käyttäjän oikeudet riittävät.
Miten cron-työtä muokataan?
Avaa crontab komennolla crontab -e, muokkaa haluttua riviä, tallenna ja sulje tiedosto. Cron lataa uuden aikataulun automaattisesti. Poistaaksesi tehtävän poista koko rivi tai kommentoi se lisäämällä # rivin alkuun.
Toimiiko cron-työ macOS:ssä?
Kyllä. macOS perustuu Unixiin ja sisältää cron-palvelun. Voit käyttää crontab -e kuten Linuxissa. macOS:n uudemmissa versioissa on myös launchd, joka on Applen oma ajastusjärjestelmä, mutta cron toimii edelleen rinnalla.
Miten cron-työn virheistä ilmoitetaan?
Oletuksena cron lähettää virheilmoitukset sähköpostitse crontabin omistajan paikalliseen postilaatikkoon. Voit ohjata viestit toiseen osoitteeseen asettamalla MAILTO=matti@esimerkki.fi crontab-tiedostossa. Virheet voi myös ohjata lokitiedostoon käyttämällä uudelleenohjausta: >> /polku/loki.log 2>&1.
Toimiiko cron-työ Windowsissa?
Cron on Unix-pohjainen työkalu, eikä se toimi natiivisti Windowsissa. Windowsin vastine on Task Scheduler (Tehtävien ajoitus). Jos tarvitset cron-tyyppistä ajastusta Windowsissa, voit käyttää WSL:ää (Windows Subsystem for Linux) tai asentaa erillisen cron-ohjelmiston.
Miten cron-työ ajastetaan joka arkiaamu kello 7.00?
Käytä lauseketta 0 7 * * 1-5 /komento. Tässä 1-5 tarkoittaa maanantaista perjantaihin. Jos tarvitset erikoisempia ajastuksia, kuten “joka toinen arkipäivä”, kannattaa käyttää skriptiä, joka tarkistaa päivän itse.