At
From ICO wiki
work in progress
Sissejuhatus
Wiki näited käivad at version 3.1.13 kohta
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
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
/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
At käsu käivitamine nohup reziimis
Peale at käsu käivitamist võib välja logida. Tööd jäävad üles ka peale kasutaja väljalogimist.
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
- man at
- video: Linux Batch and At Utilities - 10 min video, sisaldab näiteid - räägib at kasutamisest ja selgitab at / batch käsu erinevust
- atq, atrm ja batch käsu näited - struktueerisin näited samal moel
- erineb at cron käsust
- itcollege wiki: load - selgitav artikel, load kohta
- nohup näited ja selgitus
Autor
Paul Are AK31, 2013