Ero sivun ”Komentojen ajastaminen” versioiden välillä

Siirry navigaatioon Siirry hakuun
410 merkkiä lisätty ,  28. lokakuuta 2007
cron ja anacron, kappaleen siirto; at ajankohta alkusanoissa; tiedostot
(/etc/crontab & co, lisää anacronista)
(cron ja anacron, kappaleen siirto; at ajankohta alkusanoissa; tiedostot)
Rivi 1: Rivi 1:
<tt>at</tt>-komennolla voit määrätä komentoja suoritettavaksi tietyn ajan kuluttua, 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.
<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.


== Kerran ajettava työ: at ==
== Kerran ajettava työ: at ==
Rivi 49: Rivi 49:
== Säännölliset työt: cron ja anacron ==
== Säännölliset työt: cron ja anacron ==


Cronilla voidaan ajoittaa toistuvia tapahtumia. Komento ''cron'' itsessään on ajatuksen teknisestä toteutuksesta huolehtiva [[daemoni]], eikä sitä tarvitse käynnistää käsin.
Cronilla voidaan ajoittaa toistuvia tapahtumia. Komento ''cron'' itsessään on ajastuksen teknisestä toteutuksesta huolehtiva [[daemoni]], eikä sitä tarvitse käynnistää käsin.


Anacron huolehtii 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 ei aja komentoja - tietenkään - silloin kun tietokone ei ole käynnissä, kun siinä ajetaan jotakin muuta käyttöjärjestelmää tai kun ajankohta puuttu (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''.
 
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ää.


=== Yleiset työt ===
=== Yleiset työt ===


Tietokoneen toimintaan tai ylläpitoon ajettavat säännölliset työt määrätään <tt>[[Asetustiedostot|hakemistossa /etc]] olevassa tiedostossa <tt>crontab</tt>, joka kutsuu hakemistoissa <tt>cron.daily</tt>, <tt>cron.weekly</tt> ja <tt>cron.monthly</tt> olevia skriptejä. 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> on 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.
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 hakemistoissa <tt>cron.daily</tt>, <tt>cron.weekly</tt> ja <tt>cron.monthly</tt> olevia skriptejä sekä hakemistossa <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> on 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.


Omat työt tai viittaukset niihin voi lisätä joko itse <tt>crontab</tt>iin tai, jos ne on tarkoitus ajaa roottina päivittäin, viikottain tai kuukausittain, yllämainittuihin hakemistoihin. Hakemistoissa ennestään olevia tiedostoja voi käyttää mallina.
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.


=== Käyttäjien työt ===
=== Käyttäjien työt ===


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>.
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>.
Cron ei aja komentoja - tietenkään - silloin kun tietokone ei ole käynnissä tai siinä ajetaan jotakin muuta käyttöjärjestelmää. 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''.


Crontabia säädetään komennolla <tt>crontab -e</tt>. Tällöin crontab-tiedostosi aukeaa siihen editoriin, joka on määritelty ympäristömuuttujassa EDITOR. Voit valita tämän käynnistämällä ohjelman lisämääreellä <tt>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.
Crontabia säädetään komennolla <tt>crontab -e</tt>. Tällöin crontab-tiedostosi aukeaa siihen editoriin, joka on määritelty ympäristömuuttujassa EDITOR. Voit valita tämän käynnistämällä ohjelman lisämääreellä <tt>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.
Rivi 103: Rivi 103:
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ä.
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ä.


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.


785

muokkausta

Navigointivalikko