Ero sivun ”Komentojen ajastaminen” versioiden välillä

Siirry navigaatioon Siirry hakuun
194 merkkiä lisätty ,  21. marraskuuta 2005
kehittelyä
(Luokka:Komentorivi)
(kehittelyä)
Rivi 7: Rivi 7:
Yksinkertaisimmillaan voi testata komentoa
Yksinkertaisimmillaan voi testata komentoa


at now + 2 min
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ä.
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ä.
Rivi 13: Rivi 13:
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


== at: ajan esitysmuoto ==
=== 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 39: Rivi 39:
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.


== at: atq ja atrm ==
=== 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 61: Rivi 61:
Esimerkiksi rivi
Esimerkiksi rivi


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ä tai perjantai ('5', viikon viides päivä), lähetetään meiliä kello 7:30 (minuutikenttä '30', tuntikenttä '7').
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').


== cron: ajan esitysmuoto ==
=== Ajan esitysmuoto ===


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.
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.
Rivi 81: Rivi 81:
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.


cron-komennolle ei ole vastaavia tiedostoja. 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.

Navigointivalikko