Ero sivun ”Komentojen ajastaminen” versioiden välillä

Siirry navigaatioon Siirry hakuun
2 178 merkkiä lisätty ,  11. elokuuta 2005
ei muokkausyhteenvetoa
Ei muokkausyhteenvetoa
Ei muokkausyhteenvetoa
Rivi 1: Rivi 1:
Alkuhuomautus: tämä teksti on kehitteillä, ei valmis. Erityisesti tekstissä voi olla virheitä.
Alkuhuomautus: tämä teksti on kehitteillä, ei valmis. Erityisesti tekstissä voi olla virheitä.


at-komennolla voit määrätä komentoja suoritettavaksi tiettyyn aikaan, vaikkapa lähettää itsellesi 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.
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.




Rivi 77: Rivi 77:


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.
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.
== Systeeminlaajuinen crontab ==
Tyypillisessä Linux-asennuksessa on systeeminlaajuinen crontab, jota käytetään esimerkiksi varmuuskopioiden tekoon, päivitysten asentamiseen ja vanhojen lokitiedostojen tuhoamiseen.
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
0 4 * * * root tar cvzf /var/varmistukset/homet.tar.gz /home
tekee varmuuskopion siten, että tar-komento ajetaan root-käyttäjän tunnuksilla.
Käytännössä tiedostossa on yleensä seuraavantapaisia rivejä:
1 * * * * root run-parts /etc/cron.hourly
10 4 * * * root run-parts /etc/cron.daily
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".
Voit yksinkertaisesti lisätä varmuuskopiointiskriptin hakemistoon cron.daily, eikä sinun tarvitse tietää yksityiskohtia cronin toiminnasta.
== cron ja ympäristömuuttujat ==
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.
Ympäristömuuttujan arvot annetaan yksinkertaisesti muuttuja=arvo -riveinä. Esimerkki systeeminlaajuisesta crontabista:
VARMISTA=/var/varmistukset
30 1 * * * root tar xvzf $VARMISTA/home.tar.gz /home
30 4 * * * root scp $VARMISTA/home.tar.gz tunnus@toinenkone.example
esimerkki on kuvitteellinen, käytännössä on helpompi tehdä varmistuksesta oma skriptinsä.
== anacron vs. cron ==
Perinteisesti crontabeja lukee cron-demoni, yleensä nimellä crond. Se toimii oikein hyvin, kun kone on aina päällä.
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 85: Rivi 122:


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.
== Hahmotelmaa sisällöstä ==
* ympäristömuuttujat
* cron vs. anacron
* käyttö roottina vs. userina
* batch
* tyypilliset cron-ylläpitoajot
* /etc/at.deny ym. tiedostot
Rekisteröitymätön käyttäjä

Navigointivalikko