Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:idozites

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

oktatas:linux:idozites [2019/08/16 20:11] (aktuális)
admin létrehozva
Sor 1: Sor 1:
 +[[oktatas:​linux|<​ Linux]]
 +
 +====== Időzítés ======
 +
 +  * **Szerző:​** Sallai András
 +  * Copyright (c) Sallai András, 2011, 2012, 2013, 2016, 2017
 +  * Licenc: GNU Free Documentation License 1.3
 +  * Web: http://​szit.hu
 +
 +===== Bevezetés =====
 +
 +Az időzítés nagyon hasznos dolog a rendszergazda kezében. A mentéseket,​ diagnosztikai scripteket,
 +karbantartó scripteket futtathatunk vele, olyan időpontban,​ amikor kevés felhasználó
 +dolgozik a gépen. ​
 +
 +Kétféle időzítés lehetséges:​ egyszeri és ciklikus. Az előbbit az "​**at**",​ az utóbbit a **cron** démon végzi. ​
 +A **cronból** persze van egy másik is az **anacron**. Ha ezt használjuk és az időzítés a gép kikapcsolt állapotában ​
 +következik be, akkor a gép első indulásakor végrehajtódnak az időzített parancsok.
 +
 +Egy asztali számítógép "​élőbbé"​ tehető vele, ha felhasználjuk valamelyik beszédszintetizátort,​
 +ha számítógéppel kimondatunk néhány dolgot időzítve.
 +
 +
 +
 +===== cron =====
 +==== A cron használata ====
 +
 +A cron egy olyan csomag, amely minden Linux rendszeren alapértelmezetten
 +telepszik. Lehetővé teszi parancsok időzítését,​ ciklikusan.
 +
 +
 +Ha egy felhasználó szeretne egy parancsot időzíteni a következő
 +parancsot kell használnia: ​
 +  $ crontab -e
 +
 +Ennek segítségével elindul egy szerkesztő,​ amelyben megadhatjuk a
 +futtatandó parancsunkat. Valójában egy konfigurációs fájlt szerkesztünk.
 +
 +A crontab -e az alapértelmezett szövegszerkesztőt használja. ​
 +Ha valamilyen számunkra idegen szerkesztőben indul a crontab,
 +állítsuk be az alapértelmezett szövegszerkesztőt,​ rendszergazdaként
 +a következő paranccsal:
 +  # update-alternatives ​ --config editor
 +
 +Én személy szerint az mcedit parancsot szeretem, amely az mc
 +csomagban található. ​
 +
 +Egy bejegyzés az időzítés időpontjából,​ és a parancsból áll.
 +Az idő 5 részre tagolódik. Az alábbi táblázat a paranccsal
 +együtt mutatja meg, melyik rész mit jelent. ​
 +
 +| perc | óra | a_hónap_napja | hónap | a_hét_napja (hétfő 1, kedd 2, stb) | parancs |
 +
 +  0 6 * * * /​usr/​local/​webalizer 2>&1 /dev/null
 +
 +Ha nem tesszük a végére a /​dev/​null-os részt, akkor hibaüzenet ​
 +esetén küld egy e-mailt a root számára. A 2>&1 segítségével a 
 +stdout-t és a stderr-t átirányítjuk a /​dev/​null-ba.
 +
 +Az egyes részek között egy vagy több szóköz vagy tabulátor található. ​
 +
 +A következő táblázat az időpontok meghatározásához használható jeleket
 +taglalja:
 +
 +
 +|  0-9  | Megadhatunk számokat |
 +|  ,  | Vesszővel tagolva több számot is megadhatunk |
 +|  -  | Intervallum (0-5 az első helyen például azt jelenti, egésztől kezdve percenként 5-ig.) |
 +|  *  | A beírható összes lehetséges értéket jelenti |
 +|  /  | lépésköz (például az első helyen: */2 két percenként;​ 1-10/2 ez jelentheti 1-10 két percenként )|
 +
 +Minden hétfő 9:00:
 +  0 9 * * 1 /​usr/​local/​sajatScript.sh 2>&1 /dev/null
 +
 +Minden kedd 9:00:
 +  0 9 * * 2 /​usr/​local/​sajatScript.sh 2>&1 /dev/null
 +
 +Minden nap ötpercenként:​
 +<​code>​
 +*/5 * * * * /​usr/​local/​sajatScript.sh 2>&1 /dev/null
 +</​code>​
 +
 +Minden nap tízpercenként:​
 +<​code>​
 +*/10 * * * * /​usr/​local/​sajatScript.sh 2>&1 /dev/null
 +</​code>​
 +
 +Minden nap kétpercenként,​ egy és tízperc közötti időkben:
 +  1-10/2 * * * * /​usr/​local/​sajatScript.sh 2>&1 /dev/null
 +
 +Minden nap kétpercenként,​ egy és tízperc közötti időben 9 után:
 +  1-10/2 9 * * * /​usr/​local/​sajatScript.sh 2>&1 /dev/null
 +
 +
 +Egy állományban is leírhatjuk a cronbeálításainkat:​
 +  $ crontab cronfajl.txt
 +
 +Az előző beállítások törlődnek. ​
 +
 +
 +
 +==== Napi scriptek ====
 +
 +Naponta futtatandó scripteket találunk a következő könyvtárban:​
 +  /​etc/​cron.daily
 +
 +A scriptnek futási joggal kell rendelkeznie. ​
 +Ha szeretnénk egy ilyen scriptet tiltani, akkor
 +le kell vennünk a futási jogot. Legyen a példa kedvéért egy farago.sh ​
 +script. Tiltása:
 +
 +  chmod -x /​etc/​cron.daily/​farago.sh
 +Újból engedélyezése:​
 +  chmod +x /​etc/​cron.daily/​farago.sh
 +
 +Az Debian alapú rendszerekben van például egy mlocate script:
 +  /​etc/​cron.daily/​mlocate
 +
 +Mellesleg a locate kereső parancs adatbázisát építi naponta újra. ​
 +Ennek tiltása:
 +    chmod -x /​etc/​cron.daily/​mlocate
 +===== at =====
 +
 +Az "​at"​ egy parancs és egy démon is egyben. Segítségével,​ időzítve tudunk egy parancsot végrehajtani. ​
 +A parancs az adott időpontban lefut. ​
 +
 +Indítsuk el az at parancsot, megadva azt az időt, amikor le kell futnia egy parancsnak.
 +Az idő megadásához a POSIX.2 szabvány időmeghatározásait használhatjuk. ​
 +Például az óra és a perce formája: "​HH:​MM"​. Legyen egy espeak nevű 
 +program, amellyel szeretnénk kimondatni egy szöveget 5 óra 12 perckor, a 
 +szöveg pedig lehet a következő:​ "​Szeretem az almát"​.
 +Indítsuk az at parancsot:
 +  $ at 05:12
 +
 +Az at parancsnak egy várakozási jele jelenik meg. Ide kell beírni az indítani kívánt parancsot
 +  > espeak -vhu "​Szeretem az almát"​
 +  >
 +Ha végeztünk "​Enter"​ után még mindig a várakozási jel fogad. Ekkor a Ctrl+D segítségével
 +küldjünk egy fájl vége jelet, így visszakapjuk a Bash várakozási jelét, a parancssort.
 +
 +Az időzített parancsok lekérdezése:​
 +<​code>​
 +$ atq
 +1 Sat Jun 29 11:02:00 2013 a joska
 +</​code>​
 +
 +===== Példa =====
 +
 +<​code>​
 +*/1 * * * * bash -c '​espeak "​egy"​ && espeak "​kettő"'​
 +</​code>​
 +
 +Ha szeretnénk,​ hogy ne kapjunk üzenetet e-mailben a végére:
 +<​code>​
 +30 15 * * 5 /​usr/​bin/​espeak -vhu "Ideje hazamenni"​ 2>&1 /dev/null
 +</​code>​
 +Ez a beállítás pénteken 15:30-kor szól, hogy ideje hazamenni.
 +
  
oktatas/linux/idozites.txt · Utolsó módosítás: 2019/08/16 20:11 szerkesztette: admin