Guides 3 min lukuaika

Estä väliin jääneet ajot: varmista, että cron-työsi toimivat

Varmuuskopiot, tuonnit ja siivoukset ajetaan cronilla, ja ne epäonnistuvat hiljaa. Yleisimmät syyt väliin jääneisiin cron-töihin, niiden vianetsintä ja hälytys, kun työ ei käynnisty.

Cron-työt hoitavat verkkosivustojen ja palvelimien huomaamattoman taustatyön: varmuuskopiot, päivitykset, tuonnit, laskut, välimuistin lämmitykset ja siivoukset. Kun ne toimivat, kukaan ei huomaa. Kun ne lakkaavat toimimasta, kukaan ei huomaa sitäkään, ennen kuin varmuuskopio puuttuu tai laskuajo jäi tekemättä.

Miksi cron-työt ovat tärkeitä

Cron ajastaa komennot käynnistymään automaattisesti tiettyinä aikoina tai tietyin välein. Se säästää aikaa ja poistaa riskin, että joku unohtaa tehtävän. Samalla kriittinen työ, kuten yölliset varmuuskopiot, on kuitenkin ajastimen varassa, joka ei kerro kenellekään, kun jokin menee pieleen.

Yleisimmät syyt väliin jääneisiin cron-töihin

Palvelinkatkot. Jos palvelin on sammuksissa tai käynnistymässä uudelleen ajastettuna hetkenä, työ ei käynnisty.

Syntaksivirheet. Yksikin väärä kenttä ajastuslausekkeessa voi tarkoittaa, että työ käynnistyy väärään aikaan tai ei koskaan.

Virheelliset asetukset. Väärä käyttäjä, väärä työhakemisto tai työ lisätty crontabiin, jota ei koskaan ladata.

Ympäristöerot. Cron toimii minimaalisessa ympäristössä. Komento, joka toimii komentotulkissasi, voi epäonnistua cronissa, koska PATH tai muut muuttujat puuttuvat.

Päällekkäisyydet ja aikakatkaisut. Työ, joka kestää ajoväliään pidempään, voi törmätä seuraavaan ajoon. Työn valvonnan enimmäiskesto kertoo, kun ajo kestää liian kauan.

Virheiden tunnistaminen ja vianetsintä

Aloita lokeista. Järjestelmäloki (usein /var/log/syslog tai jakelusi cron-loki) näyttää, käynnistikö cron työn. Työn oma tuloste näyttää, mitä sen jälkeen tapahtui.

Tyypillisiä virheitä ja niiden merkitys:

command not found: käytä absoluuttisia polkuja tai aseta PATH crontabin alkuun.

permission denied: tarkista tiedostojen oikeudet ja se, minkä käyttäjän nimissä työ ajetaan.

syntax error: tarkista ajastuslauseke ja komennon lainausmerkit.

Ohjaa tuloste lokitiedostoon, jotta epäonnistumisista jää jälki:

30 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Cron-töiden valvonta

Lokeista on hyötyä vain, jos joku lukee niitä. Valvonta muuttaa hiljaisen epäonnistumisen hälytykseksi. Luotettavin tapa on heartbeat: työ lähettää pyynnön valvonnan URL-osoitteeseen, kun se valmistuu. Jos pyyntö ei saavu odotetussa ajassa, saat hälytyksen.

Uptimecheckin cron-valvonnoissa työ pingaa yksilöllistä URL-osoitetta GET- tai POST-pyynnöllä. Valvonta ottaa crontab-ajastuksen omalla aikavyöhykkeelläsi, hyväksyy alku- ja loppupingit samaan valvontaan, hälyttää, kun ajo ylittää enimmäiskestonsa, ja voi tallentaa poistumiskoodin ja työn tulosteen. Jos ping puuttuu, hälytys lähtee sähköpostiin, Slackiin, Microsoft Teamsiin, Discordiin, Google Chatiin, Mattermostiin, Telegramiin, PagerDutyyn, ntfy:hin, Pushoveriin, webhookiin tai push-ilmoituksena puhelimeesi, kaikissa paketeissa. Lue vaiheittainen opas: Näin valvot cron-töitä.

Hyvät käytännöt ajastukseen

Ajasta raskaat työt ruuhka-aikojen ulkopuolelle.

Porrasta samoja resursseja käyttävät työt sen sijaan, että käynnistäisit ne kaikki keskiyöllä.

Käytä lukkoa (esimerkiksi flock), jotta hidas ajo ei mene seuraavan päälle.

Käy ajastukset läpi, kun sovelluksesi muuttuu.

Cron useilla palvelimilla

Kun sama työ on usealla palvelimella, päätä, missä sen pitää ajautua, ja varmista, että se ajetaan kerran. Keskitetty ajastus tai lukko jaetussa tietovarastossa auttaa. Anna jokaiselle työlle oma heartbeat, niin tiedät, millä palvelimella ajo jäi väliin.

Cron-töiden suojaaminen

Cron-töillä on usein pääsy tietokantoihin, varmuuskopioihin ja tunnistetietoihin.

Rajaa, kuka voi muokata crontabeja.

Pidä salaisuudet poissa itse crontab-riviltä, suojatuissa tiedostoissa tai ympäristön asetuksissa.

Käy työt säännöllisesti läpi ja poista ne, joita et enää tarvitse.

Resurssien tehokas käyttö

Aja työt vain niin usein kuin on tarpeen, ja pidä komennot kevyinä. Raportti, jota kukaan ei lue tunnin välein, voidaan ajaa kerran päivässä.

Testaa ennen kuin luotat siihen

Aja uusi työ ensin käsin samalla käyttäjällä, tarkista tuloste ja ajasta se vasta sitten. Lisää heartbeat samalla kertaa, niin tiedät ensimmäisestä yöstä lähtien, ajettiinko se.

Yhteenveto

Cron-työt ovat välttämättömiä ja näkymättömiä, ja juuri siksi niitä pitää valvoa. Korjaa yleisimmät syyt, lokita tuloste ja lisää heartbeat jokaiseen tärkeään työhön.

Kokeile Uptimecheckiä ilmaiseksi 14 päivää ilman luottokorttia.

Ilmainen työkalu Cron-lausekkeen selittäjä

Jatka lukemista

Guides 6 min lukuaika

Cron-töiden valvonta heartbeat-pingeillä

Cron-työt epäonnistuvat hiljaa. Heartbeat-valvonta hälyttää, kun ajastettu työ ei ilmoittaudu ajallaan. Näin heartbeat toimii, näin lisäät sen crontabiin ja nämä asetukset kannattaa valita.

Luku

Katkot ovat menneisyyttä.

Luo ensimmäinen valvontasi alle minuutissa – tai tutustu ensin live-demoon.

14 päivän ilmainen kokeilu · Sen jälkeen ilmainen 5 valvonnalle · Ei luottokorttia