At: Difference between revisions

From ICO wiki
Jump to navigationJump to search
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Sissejuhatus ==
== Sissejuhatus ==


Wiki näited käivad '''at version 3.1.13''' kohta
Wiki näited käivad '''at version 3.1.13''' kohta.<br>
Näidetes kasutatud käskude ees on prompt '''root@server:~#''', seda pole vaja sisestada.<br>
Näidete väljundite eristamiseks kasutatud taanet.
 
 
<table border="1">
<table border="1">
<tr>
<tr>
Line 34: Line 38:


   '''root@server:~#''' at -v 23:55 16 dec
   '''root@server:~#''' at -v 23:55 16 dec
  ''Mon Dec 16 23:55:00 2013''
      ''Mon Dec 16 23:55:00 2013''
  ''warning: commands will be executed using /bin/sh''
      ''warning: commands will be executed using /bin/sh''
   '''at>''' rm *.txt
   '''at>''' rm *.txt
   '''at>''' uptime>>uptime.at.txt
   '''at>''' uptime>>uptime.at.txt
Line 59: Line 63:
   '''Näide:'''
   '''Näide:'''
     '''root@server:~#''' date
     '''root@server:~#''' date
    ''Tue Dec 17 00:37:00 EET 2013''
        ''Tue Dec 17 00:37:00 EET 2013''
     '''root@server:~#''' at -v tomorrow - 4 hour
     '''root@server:~#''' at -v tomorrow - 4 hour
    ''Tue Dec 17 20:37:00 2013''
        ''Tue Dec 17 20:37:00 2013''
    ''warning: commands will be executed using /bin/sh''
        ''warning: commands will be executed using /bin/sh''
     '''at>''' uptime>>uptime.at.txt
     '''at>''' uptime>>uptime.at.txt
     '''at>''' <EOT>
     '''at>''' <EOT>
Line 79: Line 83:
   '''Näide:'''
   '''Näide:'''
     '''root@server:~#''' atq
     '''root@server:~#''' atq
    41 Tue Dec 17 23:43:00 2013 a root
        41 Tue Dec 17 23:43:00 2013 a root
    42 Tue Dec 17 02:55:00 2013 a student
        42 Tue Dec 17 02:55:00 2013 a student
    38 Tue Dec 17 20:36:00 2013 a root
        38 Tue Dec 17 20:36:00 2013 a root
    39 Tue Dec 17 20:37:00 2013 a root
        39 Tue Dec 17 20:37:00 2013 a root
    37 Tue Dec 17 22:33:00 2013 a root
        37 Tue Dec 17 22:33:00 2013 a root
    40 Tue Dec 17 20:43:00 2013 a root
        40 Tue Dec 17 20:43:00 2013 a root


   '''Selgitus:'''
   '''Selgitus:'''
Line 96: Line 100:
     '''root@server:~#''' atrm 42
     '''root@server:~#''' atrm 42
     '''root@server:~#''' atq
     '''root@server:~#''' atq
    41 Tue Dec 17 23:43:00 2013 a root
        41 Tue Dec 17 23:43:00 2013 a root
    38 Tue Dec 17 20:36:00 2013 a root
        38 Tue Dec 17 20:36:00 2013 a root
    39 Tue Dec 17 20:37:00 2013 a root
        39 Tue Dec 17 20:37:00 2013 a root
    37 Tue Dec 17 22:33:00 2013 a root
        37 Tue Dec 17 22:33:00 2013 a root
    40 Tue Dec 17 20:43:00 2013 a root
        40 Tue Dec 17 20:43:00 2013 a root


   '''Selgitus:'''
   '''Selgitus:'''
Line 111: Line 115:
   '''Näide:'''
   '''Näide:'''
     '''student@server:~$''' batch --help
     '''student@server:~$''' batch --help
    batch accepts no parameters
        batch accepts no parameters
     '''student@server:~$''' batch
     '''student@server:~$''' batch
    warning: commands will be executed using /bin/sh
        warning: commands will be executed using /bin/sh
     '''at>''' uptime>>uptime.batch.txt
     '''at>''' uptime>>uptime.batch.txt
     '''at>''' <EOT>
     '''at>''' <EOT>
    job 44 at Tue Dec 17 20:39:00 2013
        job 44 at Tue Dec 17 20:39:00 2013
     '''student@server:~$''' ls
     '''student@server:~$''' ls
    uptime.batch.txt
        uptime.batch.txt
     '''student@server:~$''' less uptime.batch.txt  
     '''student@server:~$''' less uptime.batch.txt  
         20:39:52 up 12 min,  1 user,  load average: 0.00, 0.02, 0.05
         20:39:52 up 12 min,  1 user,  load average: 0.00, 0.02, 0.05
Line 137: Line 141:


     '''student@server:~$''' at -f tööd.txt now + 2 min
     '''student@server:~$''' at -f tööd.txt now + 2 min
    warning: commands will be executed using /bin/sh
        warning: commands will be executed using /bin/sh
    job 45 at Tue Dec 17 21:39:00 2013
        job 45 at Tue Dec 17 21:39:00 2013


    / Few things are harder to put up with  \
        / Few things are harder to put up with  \
    | than the annoyance of a good example. |
        | than the annoyance of a good example. |
    |                                      |
        |                                      |
    | -- "Mark Twain, Pudd'nhead Wilson's  |
        | -- "Mark Twain, Pudd'nhead Wilson's  |
    \ Calendar"                            /
        \ Calendar"                            /
      ---------------------------------------
        ---------------------------------------
            \  ^__^
                \  ^__^
              \  (oo)\_______
                \  (oo)\_______
                (__)\      )\/\
                    (__)\      )\/\
                    ||----w |
                        ||----w |
                    ||    ||
                        ||    ||
      21:39:00 up  1:11,  1 user,  load average: 0.00, 0.01, 0.05
        21:39:00 up  1:11,  1 user,  load average: 0.00, 0.01, 0.05


=== '''At''' käsu kasutamise lubamine/piiramine teatud kasutajatele===
=== '''At''' käsu kasutamise lubamine/piiramine teatud kasutajatele===
       /etc/at.allow
       /etc/at.allow
       /etc/at.deny
       /etc/at.deny
Line 160: Line 163:
Kõigepealt süsteem kontrollib '''at.allow''' faili olemasolu. Juhul kui fail eksisteerib siis ainult kasutajatunnused kirjeldatud at.allow failis võivad kasutada at käsku.
Kõigepealt süsteem kontrollib '''at.allow''' faili olemasolu. Juhul kui fail eksisteerib siis ainult kasutajatunnused kirjeldatud at.allow failis võivad kasutada at käsku.
Järgmisena kontrollitakse '''at.deny''' faili. Kui at.deny eksisteerib, siis selles failis kirjeldatud kasutatele ei lubata kasutada at käsku.  
Järgmisena kontrollitakse '''at.deny''' faili. Kui at.deny eksisteerib, siis selles failis kirjeldatud kasutatele ei lubata kasutada at käsku.  
Kui kumbagi faili ei eksisteeri, siis ainult superuser saab käsku kasutada.
Kui kumbagi faili ei eksisteeri, siis ainult superuser saab käsku kasutada. ('''tõlge: man at''')


=== '''At''' käsu käivitamine '''[http://linux.101hacks.com/unix/nohup-command/ nohup]''' reziimis===
=== '''At''' käsu käivitamine '''[http://linux.101hacks.com/unix/nohup-command/ nohup]''' reziimis===
Line 189: Line 192:
       '''atq -q <töötähis> Näide:'''
       '''atq -q <töötähis> Näide:'''
               '''root@server:~#''' atq -q a
               '''root@server:~#''' atq -q a
              41 Tue Dec 17 23:43:00 2013 a root
                41 Tue Dec 17 23:43:00 2013 a root
              38 Tue Dec 17 20:36:00 2013 a root
                38 Tue Dec 17 20:36:00 2013 a root
              40 Tue Dec 17 20:43:00 2013 a root
                40 Tue Dec 17 20:43:00 2013 a root


       -m      e-kirja saatmine kasutajale, kui töö lõpetab, isegi juhul kui väljundit pole  
       -m      e-kirja saatmine kasutajale, kui töö lõpetab, isegi juhul kui väljundit pole  
Line 217: Line 220:
   7 [http://en.wikipedia.org/wiki/Nice_(Unix) increased niceness tähendus Unix maailmas ]
   7 [http://en.wikipedia.org/wiki/Nice_(Unix) increased niceness tähendus Unix maailmas ]
   8 man at
   8 man at
   9 [http://youtu.be/cDy9kX0Lw7U| Lisamaterjal, 10 min video koos näidetega. Selgitab at/batch käsu erinevust Youtube video: Linux Batch and At Utilities]
   9 [http://youtu.be/cDy9kX0Lw7U Youtube video: Linux Batch and At Utilities Lisamaterjal, 10 min video koos näidetega. Selgitab at/batch käsu erinevust]


== Autor ==
== Autor ==
Paul Are AK31, 2013
Paul Are AK31, 2013

Latest revision as of 16:19, 6 January 2014

Sissejuhatus

Wiki näited käivad at version 3.1.13 kohta.
Näidetes kasutatud käskude ees on prompt root@server:~#, seda pole vaja sisestada.
Näidete väljundite eristamiseks kasutatud taanet.


at At, koondab sisestatud käsud ühte at-job-i, mis käivitatakse hiljem.
atq tavakasutaja korral loendab kasutaja ootel olevad tööd
superuseri korral loendab kõikide kasutajate ootel olevad tööd
atrm kustutab töid, mille töönumber on täpsustatud
batch käivitab käsu kohe kui süsteemi load(koormatus) [1] seda lubab, kui koormus langeb alla 0.8, või täpsustatud väärtuse atrun [2] käsuga

At ja Cron erinevus

  • At-job pärib oma keskkonna, st. käivitatakse hetkel on töökataloog ja keskkonnamuutujad sellised nagu olid töö sisestamisel
    Cron (käivitab oma töö "cron" keskkonnas) [3]
  • At on korraliseks, kuid cron kui mingit käsku vaja käivitada korduvalt. [4]

Kasutamine ja näited

Struktueerisin allpool kirjeldatud näited artikli "Understand at, atq, atrm, batch Commands using 9 Examples" [5] eeskujul

Töö käivitamine kindlaksmääratud kuupäeval ja ajal

  at 
  root@server:~# at -v 23:55 16 dec
     Mon Dec 16 23:55:00 2013
     warning: commands will be executed using /bin/sh
  at> rm *.txt
  at> uptime>>uptime.at.txt
  at> ps -axu>>ps.at.txt
  at> <EOT>
 Selgitus:
    * -v võti kuvas AT käsu käivitamise aja: Mon Dec 16 23:55:00 2013
    * näite at skripti sisu: 
      * eemaldab kõik kaustas asuvad .txt laiendiga failid
      * suunab uptime faili uptime.at.txt lõppu
      * suunab protsesside nimekirja faili ps.at.txt lõppu
      * <EOT> (ehk at skripti kirjutamise lõpetamine/väljumine, Ctrl+D käsuga)

Töö käivitamine kasutades suhtelist aega (N: nüüd + 10 minutit)

 at <suhteline_aeg> + <ajahulk> <ühik> (+ kui palju antud ajahetkest hiljem)
 at <suhteline_aeg> - <ajahulk> <ühik> (- kui palju antud ajahetkest varem) 
 at now + 1 min
 at now + 1 hour
 at now + 1 day
 at tomorrow - 2 hour 
 Näide:
    root@server:~# date
       Tue Dec 17 00:37:00 EET 2013
    root@server:~# at -v tomorrow - 4 hour
       Tue Dec 17 20:37:00 2013
       warning: commands will be executed using /bin/sh
    at> uptime>>uptime.at.txt
    at> <EOT>
 Selgitus:
    * date, et demonstreerida käsu käivitamise aega (võrdle AT käivitamise ajaga) 
    * -v võti kuvas AT käsu käivitamise aja: Tue Dec 17 20:37:00 2013
    * näite at skripti sisu: 
      * suunab uptime faili uptime.at.txt lõppu
      * <EOT> (ehk at skripti kirjutamise lõpetamine/väljumine, Ctrl+D käsuga)

Käivitamiseks määratud tööde nimekirja kuvamine käsuga atq

 atq 
 at -l (alias käsule atq)
 Näide:
    root@server:~# atq
       41	Tue Dec 17 23:43:00 2013 a root
       42	Tue Dec 17 02:55:00 2013 a student
       38	Tue Dec 17 20:36:00 2013 a root
       39	Tue Dec 17 20:37:00 2013 a root
       37	Tue Dec 17 22:33:00 2013 a root
       40	Tue Dec 17 20:43:00 2013 a root
 Selgitus:
    * <töö number> <protsessi käivitamise kuupäev> <töötähise täht a-z või = "võrdus" märk> <mis kasutaja käivitab>

Käivitamiseks määratud tööde eemaldamine/kustutamine käsuga atrm

 atrm <töö number>
 at -d <töö number> (alias käsule atrm)
 Näide:
    root@server:~# atrm 42
    root@server:~# atq
       41	Tue Dec 17 23:43:00 2013 a root
       38	Tue Dec 17 20:36:00 2013 a root
       39	Tue Dec 17 20:37:00 2013 a root
       37	Tue Dec 17 22:33:00 2013 a root
       40	Tue Dec 17 20:43:00 2013 a root
 Selgitus:
    * Eemaldab eelmises näites loetelus olnud töö nr 42

Käivitamine, kui koormus on madalam kui < 1.5 käsuga batch

  batch
 Näide:
    student@server:~$ batch --help
       batch accepts no parameters
    student@server:~$ batch
       warning: commands will be executed using /bin/sh
    at> uptime>>uptime.batch.txt
    at> <EOT>
       job 44 at Tue Dec 17 20:39:00 2013
    student@server:~$ ls
       uptime.batch.txt
    student@server:~$ less uptime.batch.txt 
        20:39:52 up 12 min,  1 user,  load average: 0.00, 0.02, 0.05
        uptime.batch.txt (END)
 Selgitus:
    * Batch käsk ei aksepteeri mingeid parameetreid, kuna töö käivitamine sõltub ainult süsteemi koormusest.
    * Batch käsu sisestamisel on näha, et loodi töö numbriga 44. 
    * Kuna süsteemi load oli alla 1.5 siis käivitati batch skript peale sisselugemist koheselt.

Tööde käivitamine failist kasutades -f võtit

 at -f <faili_nimi> <käivitamise aeg>
 Näide:
    tööd.txt sisu:
       fortune|cowsay>>TööFailistNäide.txt
       uptime>>TööFailistNäide.txt
    student@server:~$ at -f tööd.txt now + 2 min
       warning: commands will be executed using /bin/sh
       job 45 at Tue Dec 17 21:39:00 2013
       / Few things are harder to put up with  \
       | than the annoyance of a good example. |
       |                                       |
       | -- "Mark Twain, Pudd'nhead Wilson's   |
       \ Calendar"                             /
        ---------------------------------------
               \   ^__^
                \  (oo)\_______
                   (__)\       )\/\
                       ||----w |
                       ||     ||
        21:39:00 up  1:11,  1 user,  load average: 0.00, 0.01, 0.05

At käsu kasutamise lubamine/piiramine teatud kasutajatele

      /etc/at.allow
      /etc/at.deny

Kasutades at.allow ja at.deny faile saab administraator hallata, kes saavad kasutada at käsku.
Kõigepealt süsteem kontrollib at.allow faili olemasolu. Juhul kui fail eksisteerib siis ainult kasutajatunnused kirjeldatud at.allow failis võivad kasutada at käsku. Järgmisena kontrollitakse at.deny faili. Kui at.deny eksisteerib, siis selles failis kirjeldatud kasutatele ei lubata kasutada at käsku. Kui kumbagi faili ei eksisteeri, siis ainult superuser saab käsku kasutada. (tõlge: man at)

At käsu käivitamine nohup reziimis

[6] Peale at käsu käivitamist võib välja logida. At käsuga käivitadu tööd jäävad tööde järjekorda ka peale kasutaja väljalogimist alles.

Täiendavad aja formaadid At käsule

At võimaldab kasutada mitmesuguseid aja formaate.

 Mõned Näited
    at 10 am tomorrow
    at 11:00 next month
    at 22:00 today
    at now + 1 week
    at noon

Täiendavat infot, milliseid ajaformaate At käsk võimaldab, saab lugeda failist:

 /usr/share/doc/at/timespec

Võtmed

      -V                    kuvab versiooni
      -q     <töötähis>     kuvada töötähise alusel. Töötähis võib olla täht a-z või "=" võrdus märk 
                            a - at
                            b - batch
                            = - hetkel käivitatud tööd
                            z - tähestiku teised tähendavad seda, et töö on väiksema prioriteediga "increased niceness" [7]
      atq -q <töötähis> Näide:
             root@server:~# atq -q a
                41	Tue Dec 17 23:43:00 2013 a root
                38	Tue Dec 17 20:36:00 2013 a root
                40	Tue Dec 17 20:43:00 2013 a root
      -m      e-kirja saatmine kasutajale, kui töö lõpetab, isegi juhul kui väljundit pole 
      -f file Töö lugemine failist
      -t time Käivita töö, mis antud kujul: [[CC]YY]MMDDhhmm[.ss]
      -l      atq alias
      -r      atrm alias
      -d      atrm alias
      -b      batch alias
      -v      Kuvab, töö sisselugemisel, millal töö käivitatakse.
      -c      Süsteemi muutujate väärtused, mis olid töö sisestamise hetkel ja töö sisu.

Kokkuvõte

At võimaldab sättida töid hilisemal ajale või kui süsteemi koormus jääb alla teatud piiri. See on kasulik kuna nii ei pea administraator koguaeg arvuti juures viibima ja saab planeerida/hajutada töid. At käsuga õppimise käigus, sain ka parema arusaama süsteemi koormuse(load) ja nohup kohta ning tuvutsin põgusalt cron käsuga.

Kasutatud kirjandus

 1 ITK wiki: Mõisted load, load average
 2 Mis on atrun
 3 at ja cron erinevus 
 4 at ja cron erinevus
 5 Artikkel, mille alusel struktueerisin oma näited 
 6 nohup käsu kohta
 7 increased niceness tähendus Unix maailmas 
 8 man at
 9 Youtube video: Linux Batch and At Utilities Lisamaterjal, 10 min video koos näidetega. Selgitab at/batch käsu erinevust

Autor

Paul Are AK31, 2013