At

From ICO wiki
Jump to navigationJump to search

work in progress

Sissejuhatus

at At, koondab sisestatud käsud ühte at-job-i, mis käivitatakse hiljem. At-job pärib oma keskkonna, st. käsu käivitatakse hetkel on töökataloog ja süsteemimuutujatd samasugused nagu oli sisestamisel
At, erineb cron-ist. At on korraliseks kasutamiseks, cron on selleks kui mingit käsku vaja käivitada samal ajal perioodiliselt korduvalt.
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) seda lubab, kui koormus langeb alla 0.8, või täpsustatud väärtuse atrun käsuga

Kasutamine ja näited

[1]

Märkus: at käsu käivitamisel kuvatakse kasutajale hoiatust/meeldetuletust, et käsk käivitatakse kasutades /bin/sh

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> <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

At käsu käivitamine nohup reziimis

Täiendavad aja formaadid At käsule

Failid

      /var/spool/cron/atjobs
      /var/spool/cron/atspool
      /proc/loadavg
      /var/run/utmp
      /etc/at.allow
      /etc/at.deny

Võtmed (kas on mõtet sisse jätta/targem MAN lugeda ?)

      -V      kuvab versiooni
      -q queue
              uses  the  specified  queue.  A queue designation consists of a
              single letter; valid queue designations range from a to z and A
              to  Z.   The  a queue is the default for at and the b queue for
              batch.  Queues with higher letters run with increased niceness.
              The  special queue "=" is reserved for jobs which are currently
              running.
      If a job is submitted to a queue designated with an  uppercase  letter,
      the  job is treated as if it were submitted to batch at the time of the
      job.  Once the time is reached, the batch processing rules with respect
      to  load average apply.  If atq is given a specific queue, it will only
      show jobs pending in that queue.
      -m      Send mail to the user when the job has completed even if  there
              was no output.
      -M      Never send mail to the user.
      -f file Reads the job from file rather than standard input.
      -t time run the job at time, given in the format [[CC]YY]MMDDhhmm[.ss]
      -l      Is an alias for atq.
      -r      Is an alias for atrm.
      -d      Is an alias for atrm.
      -b      is an alias for batch.
      -v      Kuvab, millal töö käivitatakse, enne töö sisselugemist.
      -c      cats the jobs listed on the command line to standard output.

Vead

      The  correct  operation of batch for Linux depends on the presence of a
      proc- type directory mounted on /proc.
      If the file /var/run/utmp is not available or corrupted, or if the user
      is  not  logged  on  at the time at is invoked, the mail is sent to the
      userid found in the environment variable LOGNAME.  If that is undefined
      or empty, the current userid is assumed.
      At  and  batch as presently implemented are not suitable when users are
      competing for resources.  If this is the case for your site, you  might
      want to consider another batch system, such as nqs.

Kasutatud kirjandus

http://lowfatlinux.com/linux-task-scheduler-at.html
http://linux.about.com/library/cmd/blcmdl1_atq.htm
http://www.brunolinux.com/02-The_Terminal/The_at_Command.html
http://www.computerhope.com/unix/uat.htm
http://www.computerhope.com/unix/ucrontab.htm
http://www.thegeekstuff.com/2010/06/at-atq-atrm-batch-command-examples/
http://en.wikipedia.org/wiki/At_%28Unix%29
http://www.youtube.com/watch?v=gE9oWoKIK6o
http://youtu.be/cDy9kX0Lw7U
http://www.tldp.org/LDP/intro-linux/html/sect_04_04.html

Autor

Paul Are AK31, 2013