Muokataan sivua Komentojen ajastaminen
Siirry navigaatioon
Siirry hakuun
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: | ||
at-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ä. 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 == | ||
Yksinkertaisimmillaan voi testata komentoa: | Yksinkertaisimmillaan voi testata komentoa: | ||
Rivi 7: | Rivi 7: | ||
at now + 2 min | at now + 2 min | ||
tuloksena saat komentokehotteen 'at>'. Voit kirjoittaa siihen vaikkapa komennon "cal > kuukausi.txt" (ilman lainausmerkkejä). Paina | 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: | ||
Rivi 47: | Rivi 47: | ||
at-työn voi poistaa komennolla atrm NN. | at-työn voi poistaa komennolla atrm NN. | ||
== | == cron == | ||
Cronilla voidaan ajoittaa toistuvia tapahtumia. Komento ''cron'' itsessään on | Cronilla siis voidaan ajoittaa toistuvia tapahtumia. Komento ''cron'' itsessään on ajatuksen teknisestä toteutuksesta huolehtiva [[daemoni]], eikä tavalliselle käyttäjälle juuri tule tarvetta käyttää sitä. 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ä | 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ä 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 | |||
=== Ajan esitysmuoto === | === Ajan esitysmuoto === | ||
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!). | 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!). | ||
Rivi 85: | Rivi 63: | ||
30 7 13 * 5 mail -s 'Voi olla epäonnenpäivä' oma@osoite.example | 30 7 13 * 5 mail -s 'Voi olla epäonnenpäivä' oma@osoite.example | ||
tarkoittaa että joka kuu ('*'), kun on 13. päivä | 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'). | ||
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 | 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. Tasavälien kinilmaisemiseen on lyhennysmerkintä. "*/2 * * * *" tarkoittaa "tasan", "kaksi yli", "neljä yli" ja niin edelleen. "10-20/3 * * * *" on sama kuin "10,13,16,19 * * * *". | ||
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. | 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. | ||
Rivi 113: | Rivi 91: | ||
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ä. | ||
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. | ||
[[Luokka:Järjestelmä]] | [[Luokka:Järjestelmä]] | ||
[[Luokka: | [[Luokka:Vinkit]] | ||
[[Luokka:Komentorivi]] | [[Luokka:Komentorivi]] |