Muokataan sivua Komentojen ajastaminen

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
<tt>at</tt>-komennolla voit määrätä komentoja suoritettavaksi tietyn ajan kuluttua tai tiettynä ajankohtana, vaikkapa lähettää itsellesi sähköpostia kahden päivän ja kolmen tunnin kuluttua nykyhetkestä. <tt>cron</tt>-komennolla voi suorittaa jonkin komennon tai ohjelman säännöllisin väliajoin, esimerkiksi tehdä varmuuskopiot joka torstai kello 13.00. <tt>anacron</tt> hoitaa cronin ajamatta jääneet työt, kun kone laitetaan päälle. Kaikista komennoista on hyvät man-sivut, mutta tiettävästi suomenkielistä täydellistä esitystä komennoista ei ole.
Alkuhuomautus: tämä teksti on kehitteillä, ei valmis. Erityisesti tekstissä voi olla virheitä.


== Kerran ajettava työ: at ==
at-komennolla voi määrätä komentoja suoritettavaksi tiettyyn aikaan, vaikkapa lähettää itselleeen sähköpostia kahden päivän ja kolmen tunnin kuluttua nykyhetkestä. cron-komennolla voi suorittaa jonkin komennon tai ohjelman säännöllisin väliajoin, esimerkiksi tehdä varmuuskopiot joka torstai kello 13.00. Kummastakin komennosta on hyvä man-sivu, mutta tiettävästi suomenkielistä täydellistä esitystä komennoista ei ole.


Yksinkertaisimmillaan voi testata komentoa:


at now + 2 min
== at: esimerkkejä ==


tuloksena saat komentokehotteen 'at>'. Voit kirjoittaa siihen vaikkapa komennon "cal > kuukausi.txt" (ilman lainausmerkkejä). Paina {{näppäin|enter}} ja sitten {{näppäin|Ctrl|D}} niin pääset takaisin komentotulkkiin. Nyt voit tarkistaa että tiedostoa kuukausi.txt ei vielä ole. Komennolla atq näet että työsi on odottamassa. Parin minuutin kuluttua tiedoston kuukausi.txt pitäisi ilmestyä.
Yksinkertaisimmillaan voi testata komentoa
 
at now + 2 min
 
tuloksena saat komentokehotteen 'at>'. Voit kirjoittaa siihen vaikkapa komennon "cal > kuukausi.txt" (ilman lainausmerkkejä). Paina enter ja sitten Ctrl+D niin pääset takaisin komentotulkkiin. Nyt voit tarkistaa että tiedostoa kuukausi.txt ei vielä ole. Komennolla atq näet että työsi on odottamassa. Parin minuutin kuluttua tiedoston kuukausi.txt pitäisi ilmestyä.


Saman asian kuin edellä voit tehdä putkea hyödyntäen:
Saman asian kuin edellä voit tehdä putkea hyödyntäen:


echo 'cal > kuukausi.txt' | at now + 2 min
echo 'cal > kuukausi.txt' | at now + 2 min


Jos käytät konetta joka voi lähettää sähköpostia, voit jo hyödyntää edelläolevaa. Esimerkki:
Jos käytät konetta joka voi lähettää sähköpostia, voit jo hyödyntää edelläolevaa. Esimerkki:


echo "mail -s 'Lopeta koodaus! Mene nukkumaan!' oma@osoite.example" | at now + 3 hour
echo "mail -s 'Lopeta koodaus! Mene nukkumaan!' oma@osoite.example" | at now + 3 hour


Yleensä at-komennolle annetaan absoluuttinen aika eikä aikaa suhteessa nykyhetkeen. Esimerkki:
Yleensä at-komennolle annetaan absoluuttinen aika eikä aikaa suhteessa nykyhetkeen. Esimerkki:


echo 'mail -s "Osta vaimolle kukkia" oma@osoite.example' | at 15:00 2006-03-23
echo 'mail -s "Osta vaimolle kukkia" oma@osoite.example' | at 15:00 2006-03-23


Em. komento siis lähettää sähköpostia 23.3.2006 kello 15. Joskus voi yhdistää absoluuttisen kellonajan ja suhteellisen päivän. Muistutusmeili ylihuomenna tulevasta TV-ohjelmasta lähtee näin:
Em. komento siis lähettää sähköpostia 23.3.2006 kello 15. Joskus voi yhdistää absoluuttisen kellonajan ja suhteellisen päivän. Muistutusmeili ylihuomenna tulevasta TV-ohjelmasta lähtee näin:


echo 'mail -s "Kauniit ja rohkeat alkaa" oma@osoite.example' | at 17:00 + 2 day
echo 'mail -s "Kauniit ja rohkeat alkaa" oma@osoite.example' | at 17:00 + 2 day


=== Ajan esitysmuoto ===
== at: ajan esitysmuoto ==


Kellonajan on aina oltava ennen päivämäärää. Pelkkä päivämäärä tulkitaan tarkoittavan ko. päivänä samaan aikaan kuin komento annettiin. Pelkkä kellonaika tulkitaan seuraavana mahdollisena aikana, eli '12:00' tarkoittaa huomista keskipäivää jos komento annetaan iltapäivällä.
Kellonajan on aina oltava ennen päivämäärää. Pelkkä päivämäärä tulkitaan tarkoittavan ko. päivänä samaan aikaan kuin komento annettiin. Pelkkä kellonaika tulkitaan seuraavana mahdollisena aikana, eli '12:00' tarkoittaa huomista keskipäivää jos komento annetaan iltapäivällä.
Rivi 37: Rivi 40:
Suhteellinen aika voidaan ilmaista minuutteina, tunteina, päivinä tai viikkoina (esim. 'now + 5 minutes', 'now + 4 hours', 'now + 3 days', 'now + 2 weeks'). Lyhennysmerkintä 'tomorrow' on sama kuin 'now + 1 day'. Absoluuttisen ajan ja suhteellisen lisäyksen useimmat järkevät yhdistelmät toimivat. Esimerkiksi '15:00 2006-06-26 + 2 weeks' toimii. Eräs tapa nähdä mikä on vuoden 2006 sadas päivä on komentaa 'at 2006-01-01 + 99 days, ja katsoa mihin päivää at sijoittaa ajastuksen.
Suhteellinen aika voidaan ilmaista minuutteina, tunteina, päivinä tai viikkoina (esim. 'now + 5 minutes', 'now + 4 hours', 'now + 3 days', 'now + 2 weeks'). Lyhennysmerkintä 'tomorrow' on sama kuin 'now + 1 day'. Absoluuttisen ajan ja suhteellisen lisäyksen useimmat järkevät yhdistelmät toimivat. Esimerkiksi '15:00 2006-06-26 + 2 weeks' toimii. Eräs tapa nähdä mikä on vuoden 2006 sadas päivä on komentaa 'at 2006-01-01 + 99 days, ja katsoa mihin päivää at sijoittaa ajastuksen.


=== atq ja atrm ===
== at: atq ja atrm ==


Komennolla atq voi katsoa omat at-työnsä. Root näkee sillä kaikkien jonossa olevat at-työt. Komennon tuloste on muotoa
Komennolla atq voi katsoa omat at-työnsä. Root näkee sillä kaikkien jonossa olevat at-työt. Komennon tuloste on muotoa
Rivi 47: Rivi 50:
at-työn voi poistaa komennolla atrm NN.
at-työn voi poistaa komennolla atrm NN.


== Säännölliset työt: cron ja anacron ==
== cron: esimerkkejä ==
 
Aloita komentamalla
 
EDITOR=emacs crontab -e
 
(Jos emacs ei ole tuttu, laita sen tilalle esim. vi tai nano.) Tekstieditori avautuu. Kirjoita tiedostoon vain yksi rivi: "* * * * * date >> /tmp/aika". Tallenna tiedosto, jolloin kone vastaa "crontab: installing new crontab". Odota pari minuuttia. Nyt tiedostossa /tmp/aika pitäisi olla date-komennon tulostus minuutin välein.
 
Komento crontab avasi tiedoston, jota kutsutaan myös nimellä crontab. Tämän tiedoston muoto on varsin yksinkertainen: aika, välilyönti, komento. Aika taas koostuu viidestä kentästä: minuutti, tunti, kuukaudenpäivä, kuukausi ja viikonpäivä. Tähti tarkoittaa mitä vain, viisi tähteä siis asiaa joka tehdään joka minuutti.
 
Esimerkiksi rivi


Cronilla voidaan ajoittaa toistuvia tapahtumia. Komento ''cron'' itsessään on ajastuksen teknisestä toteutuksesta huolehtiva [[taustaprosessi]], eikä sitä tarvitse käynnistää käsin.
30 7 13 * 5 mail -s 'Voi olla epäonnenpäivä' oma@osoite.example


Cron ei aja komentoja - tietenkään - silloin kun tietokone ei ole käynnissä, kun siinä ajetaan jotakin muuta käyttöjärjestelmää tai kun ajankohta puuttuu (kesäikaan siirtymisen takia). Se ei myöskään huolehdi siitä, että tällaisen tauon aikana tapahtumaan säädetyn työt tulisivat ajetuksi sen jälkeen, kun Linux taas käynnistetään. Jos näin halutaan tapahtuvan, pitää asentaa ''anacron''.
tarkoittaa että joka kuu ('*'), kun on 13. päivä tai perjantai ('5', viikon viides päivä), lähetetään meiliä kello 7:30 (minuutikenttä '30', tuntikenttä '7').


Anacron huolehtii siis ajamatta jääneiden cron-töiden ajamisesta myöhemmin, kun tietokone on taas päällä. Sen asentaminen kannattaa, ellei kone yleensä ole päälle kaikki päivät vuorokauden ympäri. Oletusasetukset ovat yleensä riittävät, mutta erikoisemmassa käytössä (esimerkiksi jos käytössä on tärkeitä omia cron-töitä), sen olemassaolo voi olla hyvä huomioida skriptejä kirjoitettaessa. Myös viivettä koneen käynnistyksen ja töiden ajamisen välillä voi haluta säätää.
== cron: ajan esitysmuoto ==


=== Yleiset työt ===
Yksinkertaisimmillaan aikakentän osa on pelkkä numero, eli "30 * * * *" tarkoittaa komentoa joka suoritetaan "aina puolelta". Se voi olla myös numeroluettelo tai aikaväli, "29,30,31 * * * *" ja "29-31 * * * *" tarkoittavat molemma "puolelta sekä minuutti ennen ja jälkeen". Välejä voi luetellakin, "10-19,30-39,50-59 * * * *" suorittaisi komennon aina kymmenen kertaa minuutin välein ja pitäisi sitten kymmenen minuutin tauon.


Tietokoneen toimintaan tai ylläpitoon kuuluvat säännölliset työt määrätään hakemistossa [[Asetustiedostot|<tt>/etc</tt>]] olevassa tiedostossa <tt>[[crontab]]</tt> (joka kutsuu alihakemistoissa <tt>cron.hourly</tt>, <tt>cron.daily</tt>, <tt>cron.weekly</tt> ja <tt>cron.monthly</tt> olevia skriptejä) sekä alihakemistossa <tt>cron.d</tt> olevissa tiedostoissa. Yleensä työt pyritään ajamaan öisin, kun kone on vähäisessä käytössä, mutta jollei halua koneen alkavan raksuttaa pikkutunneilla, aikoja voi muuttaa. <tt>/etc/crontab</tt> ja <tt>/etc/cron.d/*</tt> ovat muuten samassa muodossa kuin käyttäjien crontab-tiedostot, mutta ajankohdan ja komennon välissä määrätään minä käyttäjänä työ tulee ajaa.
Tasavälien ilmaisemiseen on lyhennysmerkintä. "*/2 * * * *" tarkoittaa "tasan", "kaksi yli", "neljä yli" ja niin edelleen. "10-20/3 * * * *" on sama kuin "10,13,16,19 * * * *".


Omat työt tai viittaukset niihin voi lisätä itse <tt>crontab</tt>iin mutta mielummin joko hakemistoon <tt>cron.d</tt> tai, jos ne on tarkoitus ajaa roottina tunnittain, päivittäin, viikottain tai kuukausittain, tätä vastaaviin hakemistoihin. Hakemistoissa ennestään olevia tiedostoja voi käyttää mallina.
Kaikki nämä kentät voi yhdistää. Esimerkiksi "*/5 8-16 * * 1-5" tekisi jotain viiden minuutin välein "työaikaan", ts. maanantaista perjantaihin kello 8-16.


=== Käyttäjien työt ===
Viikonpäivistä sunnuntain voi merkitä joko '0' tai '7'. Viikonpäivät ja kuukaudet voi merkitä lyhenteillä: "0 0 1 jan mon" ajaa komennon keskiyöllä joka tammikuun maanantai sekä aina uudenvuodenpäivänä. Välejä ei voi käyttää lyhenteiden kanssa, eli viikonpäivämerkintää 1-5 ei voi korvata merkinnällä mon-fri.


Käyttäjien töiden ajastamiseen käytetään komentoa ''crontab'', joka käsittelee samannimistä asetustiedostoa. Tässä tuleekin huomata eräs [[man]]-komennon piirre; <tt>man crontab</tt> kertoo miten crontab-komento toimii. Sen sijaan mikäli halutaan tietoa crontab-tiedoston formaatista, täytyy manille kertoa myös mistä osastosta (section), halutaan crontab-niminen manuaalisivu, oikea komento tällöin on <tt>man 5 crontab</tt>.
Ainoa hankalasti muistettava asia on kuukaudenpäivän ja viikonpäivän yhdistelmä. Ne tulkitaan "tai" eikä "ja", eli cron ei osaa suoraan ajaa komentoja kun on sekä kuun 13. päivä että viikon 5. päivä eli perjantai.


Crontabia säädetään komennolla <tt>crontab -e</tt>. Tällöin crontab-tiedostosi aukeaa siihen editoriin, joka on määritelty [[ympäristömuuttuja]]ssa EDITOR. Voit valita tämän käynnistämällä ohjelman lisämääreellä, esimerkiksi <tt>[[env]] EDITOR=emacs crontab -e</tt>. Pysyvästi voit vaikuttaa tähän muuttujaan kirjoittamalla kotihakemistossasi olevaan ''.bashrc''-tiedostoon esimerkiksi rivin <tt>export EDITOR="editorisi_nimi"</tt>. Hyviä vaihtoehtoja ovat esimerkiksi ''vim'', ''emacs'' ja ''nano -w'' - jälkimmäisessä tulee asetustiedostoja ja muita vastaavia käytettäessä muistaa -w -valitsin, jottei Nano rivittämällä rikkoisi koodia.
== Systeeminlaajuinen crontab ==


=== Ajan esitysmuoto ===
Tyypillisessä Linux-asennuksessa on systeeminlaajuinen crontab, jota käytetään esimerkiksi varmuuskopioiden tekoon, päivitysten asentamiseen ja vanhojen lokitiedostojen tuhoamiseen.


*    *    *    *    *  suoritettava komento
Päätiedostona on /etc/crontab. Sen muoto on muutoin sama kuin käyttäjäkohtaisilla crontabeilla, mutta mukana on uusi kenttä joka kertoo käyttäjätunnuksen. Kenttä on ajan ja komennon välissä, esimerkiksi
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    └───── viikonpäivä (0 - 7) (0 tai 7 = sunnuntai)
│    │    │    └────────── kuukausi (1 - 12)
│    │    └─────────────── päivä (1 - 31)
│    └──────────────────── tunti (0 - 23)
└───────────────────────── minuutti (0 - 59)


0 4 * * * root tar cvzf /var/varmistukset/homet.tar.gz /home


Crontab-tiedoston rivi koostuu yleensä kahdesta kentästä, viisiosaisesta aikakentästä ja siitä komennosta, joka on tarkoitus ajastaa. Osat ovat järjestyksessä '''minuutti''', '''tunti''', '''kuukaudenpäivä''', '''kuukausi''' ja '''viikonpäivä''' - sunnuntai on sekä päivä 0 että 7.  Tähti tarkoittaa, että mikä tahansa arvo kelpaa, viisi tähteä siis asiaa joka tehdään joka minuutti (kannattaa tietenkin varmistua, ettei suoritettava asia kestä yli minuuttia!).
tekee varmuuskopion siten, että tar-komento ajetaan root-käyttäjän tunnuksilla.


Täten rivi
Käytännössä tiedostossa on yleensä seuraavantapaisia rivejä:


30 7 13 * 5 mail -s 'Voi olla epäonnenpäivä' oma@osoite.example
1 * * * * root run-parts /etc/cron.hourly


tarkoittaa että joka kuu ('*'), kun on 13. päivä ja perjantai ('5', viikon viides päivä), lähetetään meiliä kello 7:30 (minuutikenttä '30', tuntikenttä '7').
10 4 * * * root run-parts /etc/cron.daily


Yksinkertaisimmillaan aikakentän osa on pelkkä numero, eli "30 * * * *" tarkoittaa komentoa joka suoritetaan "aina puolelta". Se voi olla myös numeroluettelo tai aikaväli, "29,30,31 * * * *" ja "29-31 * * * *" tarkoittavat molemmat "puolelta sekä minuutti ennen ja jälkeen". Välejä voi luetellakin, "10-19,30-39,50-59 * * * *" suorittaisi komennon aina kymmenen kertaa minuutin välein ja pitäisi sitten kymmenen minuutin tauon. Tasavälienkin ilmaisemiseen on lyhennysmerkintä. "*/2 * * * *" tarkoittaa "tasan", "kaksi yli", "neljä yli" ja niin edelleen. "10-20/3 * * * *" on sama kuin "10,13,16,19 * * * *".
run-parts on yksinkertainen ohjelma, joka vain lukee läpi tietyn hakemiston ja ajaa jokaisen löytämänsä ohjelman tai skriptin. Em. rivit siis tarkoittavat "joka tunti tasan minuutin yli aja hakemiston cron.hourly ohjelmat" ja "joka yö kello 4:10 aja hakemiston cron.daily ohjelmat".


Kaikki nämä kentät voi yhdistää. Esimerkiksi "*/5 8-16 * * 1-5" tekisi jotain viiden minuutin välein "työaikaan", ts. maanantaista perjantaihin kello 8-16.
Voit yksinkertaisesti lisätä varmuuskopiointiskriptin hakemistoon cron.daily, eikä sinun tarvitse tietää yksityiskohtia cronin toiminnasta.


Viikonpäivistä sunnuntain voi merkitä joko '0' tai '7'. Viikonpäivät ja kuukaudet voi merkitä lyhenteillä: "0 0 1 jan mon" ajaa komennon keskiyöllä joka tammikuun maanantai sekä aina uudenvuodenpäivänä. Välejä ei voi käyttää lyhenteiden kanssa, eli viikonpäivämerkintää 1-5 ei voi korvata merkinnällä mon-fri.
== cron ja ympäristömuuttujat ==


Ainoa hankalasti muistettava asia on kuukaudenpäivän ja viikonpäivän yhdistelmä. Ne tulkitaan "tai" eikä "ja", eli cron ei osaa suoraan ajaa komentoja kun on sekä kuun 13. päivä että viikon 5. päivä eli perjantai.  
crontab voi sisältää myös ympäristömuuttujia. Tyypillinen ympäristömuuttuja on ainakin SHELL. Sen arvo kertoo millä komentotulkilla halutaan komennot suorittaa (ellei sitä ole määritelty, käytetään käyttäjän normaalia login-shelliä). Yleensä myös PATH määritellään, jotta tulee suoritettua varmasti oikeita komentoja.


Useimmissa distroissa on oletuksena asennettu Vixie Cron, jossa viisiosaisen kentän voi halutessaan korvata valmiilla lyhenteellä, joita ovat @reboot (koneen käynnistyksen yhteydessä), @yearly tai @annually (vuoden vaihtuessa), @monthly (kuun vaihtuessa), @weekly (viikon vaihtuessa), @daily tai @midnight (keskiyöllä) tai @hourly (tunneittain).
Ympäristömuuttujan arvot annetaan yksinkertaisesti muuttuja=arvo -riveinä. Esimerkki systeeminlaajuisesta crontabista:


=== Komentojen tulosteet ===
VARMISTA=/var/varmistukset
30 1 * * * root tar xvzf $VARMISTA/home.tar.gz /home
30 4 * * * root scp $VARMISTA/home.tar.gz tunnus@toinenkone.example


Paitsi tekevät monia asioita, ajettavat komennot usein tulostavat jotakin vakiotuloste- tai virhevirtaan. Mikäli koneessa on toimivaksi säädetty sähköpostijärjestelmä, tuloste lähetetään käyttäjälle sähköpostillä. Tämän tarkoituksenmukaisuus tietenkin riippuu tapauksesta. Usein esimerkiksi on toivottavaa, että normaalisti käyttäjää ei vaivata, mutta jos jokin menee vikaan, voidaan virheilmoitus lähettää. Useat komennot eivät oletuksena tulostakaan mitään tai ne voidaan komentaa olemaan hiljaa, mutta mikäli ohjelma ei ole tällainen, voidaan sen syöte ohjata "roskiin" > -operaattorilla:
esimerkki on kuvitteellinen, käytännössä on helpompi tehdä varmistuksesta oma skriptinsä.


@hourly /usr/bin/foobar 1> /dev/null
== anacron vs. cron ==


Hieman uhkarohkeampi versio on ohjata roskiin myös virheilmoitukset:
Perinteisesti crontabeja lukee cron-demoni, yleensä nimellä crond. Se toimii oikein hyvin, kun kone on aina päällä.


@hourly /usr/bin/foobar &> /dev/null
Jos kone ei ole aina päällä, kannattaa asentaa anacron. Sillä voi ajastaa komentoja vain päivien tarkkuudella, mutta se tallentaa tiedon siitä koska komento ajettiin, ja osaa ajaa väliin jääneet komennot sitten kun kone taas on ajossa. Lisätietoja saat komennolla man anacron.


== Tiedostot ==
== Tiedostot ==
Rivi 111: Rivi 120:
at käyttää oikeuksien tarkistamiseen tiedostoja /etc/at.allow ja /etc/at.deny. Jos kumpaakaan ei ole, kaikki saavat käyttää at-komentoa. Jos /etc/at.allow on, vain siinä luetellut käyttäjät saavat käyttää at-komentoa. Jos at.allow -tiedostoa ei ole, mutta /etc/at.deny -tiedosto on, kaikki ne joiden tunnuksia ei ole at.deny -tiedostossa saavat käyttää at-komentoa. Rootille käyttö on aina sallittu.
at käyttää oikeuksien tarkistamiseen tiedostoja /etc/at.allow ja /etc/at.deny. Jos kumpaakaan ei ole, kaikki saavat käyttää at-komentoa. Jos /etc/at.allow on, vain siinä luetellut käyttäjät saavat käyttää at-komentoa. Jos at.allow -tiedostoa ei ole, mutta /etc/at.deny -tiedosto on, kaikki ne joiden tunnuksia ei ole at.deny -tiedostossa saavat käyttää at-komentoa. Rootille käyttö on aina sallittu.


Cronissa yleensä joko cron- tai crontab-ryhmään kuuluvilla käyttäjillä on oikeus käytää cronia. Tiedostossa /etc/cron.deny voidaan kuitenkin listata käyttäjiä, jotka kuuluvat kyseiseen ryhmään mutteivät saa käyttää cronia. Cron osaa käyttää pam-moduuleja, mutta aihetta ei käsitellä tässä tekstissä.
cron-komennolle ei ole vastaavia tiedostoja. Cron osaa käyttää pam-moduuleja, mutta aihetta ei käsitellä tässä tekstissä.


Koneen yleiseen toimintaan ja ylläpitoon kuuluvat ajastetut komennot ovat tiedostossa /etc/crontab ja hakemistoissa /etc/cron.d/, /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly ja /etc/cron/monthly.
at-komennolla ajastetut komennot on tallennettu hakemistoon /var/spool/at. Vastaavasti käyttäjien crontabit ovat hakemistossa /var/spool/cron. Kumpaankin hakemisoon lukuoikeus on vain rootilla.
at-komennolla ajastetut komennot on tallennettu hakemistoon /var/spool/at. Vastaavasti käyttäjien crontabit ovat hakemistossa /var/spool/cron. Kumpaankin hakemisoon lukuoikeus on vain rootilla.


'''Huom.!''' Crond ei aja /etc/cron.* -hakemistoissa olevia tiedostoja, jos niiden nimessä on piste. /etc/cron.daily/update.sh ei toimisi, mutta /etc/cron.daily/update toimisi. Katso [[man]] [[run-parts]] tai muu komento, jolla nämä ajetaan /etc/crontab-tiedostosta. cron ajaa itse tiedostot hakemistossa /etc/cron.d, mutta noudattaa ohjelman run-parts käytäntöä. Näin erilaiset varmuuskopiot (*~, *.bk, *.dpkg-dist *.rpmsave jne.) eivät aiheuta ongelmia. ”Sallitut” nimet vaihtelevat asetusten mukaan.
== Joitakin erikoisuuksia ==
 
Entä jos komento halutaan suorittaa nimenomaan perjantai 13. päivä? Se onnistuu esimerkiksi suorittamalla joka perjantai tällainen komento:
 
if (( $(date +%d) == 13 )); then mail -s 'arghs' oma@osoite.example; fi
 
Alle minuutin välein ei komentojen ajastaminen suoraan onnistu cronilla. Toisaalta cron-komennon ajama työ voi sisältää sleep-komennon. Esimerkiksi ping 30 sekunnin välein onnistuu ajamalla minuutin välein komento


==Katso myös==
ping -c 1 toinenkone.example ; sleep 30 ; ping -c 1 toinenkone.example
*[[Ohjelmien käynnistäminen kirjauduttaessa sisään]]


[[Luokka:Järjestelmä]]
Kellonajan muutosta cron ja at eivät huomaa. Yleensä tällä ei ole merkitystä, mutta periaatteessa huomaamalla sopivaan aikaan kellon olevan jäljessä ja ajamalla date --set voi jokin ajastettu työ jäädä ajamatta.
[[Luokka:Ohjeet]]
[[Luokka:Komentorivi]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)