štvrtok 26. decembra 2019

Plánovač úloh at

Keď chceme plánovať úlohy, používame zväčša program cron. Počuli ste o plánovači úloh at?




Príkaz at je nástroj, ktorý plánuje úlohu jednorázovo. Najprv si ho nainštalujme:

Inštalácia: 


(V Debiane takto:)

root@guliverkel:~# apt install at
Reading package lists... Done
Building dependency tree     
Reading state information... Done
The following additional packages will be installed:
  exim4-base exim4-config exim4-daemon-light guile-2.0-libs libgsasl7 libkyotocabinet16v5 libmailutils5 libntlm0 mailutils mailutils-common
Suggested packages:
  eximon4 exim4-doc-html | exim4-doc-info spf-tools-perl swaks mailutils-mh mailutils-doc
The following NEW packages will be installed:
  at exim4-base exim4-config exim4-daemon-light guile-2.0-libs libgsasl7 libkyotocabinet16v5 libmailutils5 libntlm0 mailutils mailutils-common
0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
Need to get 6,850 kB of archives.
After this operation, 22.4 MB of additional disk space will be used.
Do you want to continue? [Y/n]


Keď mu povolíme, nech sa nainštaluje, môžeme s ním plánovať úlohy.

Poznámka: pomocou nástroja at neplánujeme úlohy periodicky, na to nám slúži cron. Cez cron riešime, že sa každý deň o 4 ráno spustí skript. (at toto nedokáže, len jednorázové riešenie.) 




atd démon

Takto vyzerá atd démon:

root@guliverkel:/media/data1/filmy# systemctl status atd
● atd.service - Deferred execution scheduler
   Loaded: loaded (/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-12-26 17:20:48 CET; 42min ago
     Docs: man:atd(8)
 Main PID: 6193 (atd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/atd.service
           └─6193 /usr/sbin/atd -f

Dec 26 17:20:48 guliverkel systemd[1]: Started Deferred execution scheduler.

                                                                 

at





Ako pracujem s at? Existuje niečo ako konzola at.

syntax:

at + čas 

potom nás to hodí do konzoly at a napíšeme, čo má vytvoriť.  (odchádzam z konzoly at pomocou známej skratky CTRL+d)

Príklady:  (naplánujeme, nech sa spustí kopírovanie o 18:15)

(Ja už som at skúšal predtým, preto mi bude ukázovať od úlohy 4


(poradil nám, aby sme používali príkazy cez celú cestu, tj. kde sú uložené, väčšinou v adresári /bin)

martin@guliverkel:~$ at 18:15
warning: commands will be executed using /bin/sh
at> /bin/cp /etc/resolv.conf /home/martin
at> <EOT>
job 4 at Thu Dec 26 18:15:00 2019
martin@guliverkel:~$

(keď som chcel odísť, dal som ctrl+d)

Zoznam úloh si pozriem takto:



martin@guliverkel:~$ atq
4       Thu Dec 26 18:15:00 2019 a martin
martin@guliverkel:~$ at -l
4       Thu Dec 26 18:15:00 2019 a martin
martin@guliverkel:~$ 

Skontrolujme, či to prešlo: (Najprv zistím, či už ubehol čas a potom si cez ls pozriem, či sa tam nachádza)

martin@guliverkel:~$ date
Thu Dec 26 18:15:35 CET 2019
martin@guliverkel:~$ ls -lh /home/martin/resolv.conf
-rw-r--r-- 1 martin martin 25 Dec 26 18:15 /home/martin/resolv.conf
martin@guliverkel:~$


Dá sa to urobiť aj trochu inak. Nemusíme voliť presný čas, ale dajme mu (Odteraz za 10 hodín napíklad.)




martin@guliverkel:~$ at now + 10 hours
warning: commands will be executed using /bin/sh
at> /bin/rm -rf /etc/passwd
at> <EOT>
job 5 at Fri Dec 27 04:19:00 2019
martin@guliverkel:~$ at -l
5       Fri Dec 27 04:19:00 2019 a martin
martin@guliverkel:~$

Ako mazať at?


Vzhľadom na to, čo sme sa chystali urobiť, nie je to múdre. Keď vymažete súbor /etc/passwd, nenabootuje systém. Nemusíte si čítať k tomu manuály, ja som to skúšal, verte mi, naozaj to tak funguje :-) V tomto prípade by to aj tak nefungovalo, lebo na to nemáme práva.

Na mazanie úloh sa používa príkaz atrm 

syntax: atrm +5
martin@guliverkel:~$ atrm 5
martin@guliverkel:~$ atq
martin@guliverkel:~$ 


Čo je /etc/at.allow a /etc/at.deny


Podobne ako v crone, aj tu existuje zoznam povolených užívateľov a zoznam zakázaných užívateľov. Debian 9 ani nemá zoznam súbor /etc/at.allow . Tu je výpis z /etc/at.deny (Ako vidíme, sú to systémoví užívatelia)

root@guliverkel:/home/martin# cat /etc/at.deny 
alias
backup
bin
daemon
ftp
games
gnats
guest
irc
lp
mail
man
nobody
operator
proxy
qmaild
qmaill
qmailp
qmailq
qmailr
qmails
sync
sys
www-data

Žiadne komentáre:

Zverejnenie komentára