Embedded Linux Conference 2013 - Task Scheduling for Multicore Embedded Devices
Tartalomjegyzék:
- Mi az a Crontab fájl?
- Crontab szintaxis és operátorok
- Rendszeres Crontab fájlok
- Előre meghatározott makrók
- Linux Crontab parancs
- Crontab változók
- Crontab korlátozások
- Cron Jobs példák
- Következtetés
A Cron egy ütemezési démon, amely meghatározott időközönként végrehajtja a feladatokat. Ezeket a feladatokat cron joboknak nevezik, és elsősorban a rendszer karbantartásának vagy adminisztrációjának automatizálására használják.
Beállíthat egy cron feladatot az ismétlődő feladatok automatizálására, például adatbázisok vagy adatok biztonsági mentésére, a rendszer frissítésére a legújabb biztonsági javításokkal, a lemezterület-felhasználás ellenőrzésére, e-mailek küldésére és így tovább. Egyes alkalmazások, például a Drupal vagy a Magento, bizonyos feladatok elvégzéséhez cron feladatokat igényelnek.
A cron feladatok ütemezhetők egy perc, óra, a hónap napja, a hónap, a hét napja vagy ezek bármely kombinációja alapján.
Mi az a Crontab fájl?
A Crontab (cron table) egy szöveges fájl, amely meghatározza a cron feladatok ütemezését. Kétféle típusú crontab fájl létezik. A rendszerszintű crontab fájlok és az egyes felhasználók crontab fájlok.
A crontab fájlokat a felhasználó neve tárolja, és helyük az operációs rendszerektől függ. A Red Hat alapú rendszerekben, például a CentOS, a crontab fájlokat a
/var/spool/cron
könyvtárban tárolják, míg a Debian és az Ubuntu fájlokat a
/var/spool/cron/crontabs
könyvtárban tárolják.
Bár a felhasználó crontab fájljait manuálisan is szerkesztheti, ajánlott a
crontab
parancs használata.
/etc/crontab
és az
/etc/cron.d
könyvtárban lévő fájlok rendszerszintű crontab fájlok, amelyeket csak a rendszergazdák szerkeszthetnek.
A legtöbb Linux disztribúcióban szkripteket is elhelyezhet az
/etc/cron.{hourly, daily, weekly, monthly}
hour/day/week/month
/etc/cron.{hourly, daily, weekly, monthly}
könyvtárakban, és a szkriptek
hour/day/week/month
kerülnek végrehajtásra.
Crontab szintaxis és operátorok
A felhasználói crontab fájl minden sora hat mezőt tartalmaz, szóközzel elválasztva, amelyet a futtatandó parancs követ.
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
Az első öt mező egy vagy több értéket tartalmazhat, vesszővel elválasztva, vagy kötőjelekkel elválasztott értéktartományt.
-
*
-A csillag operátor bármilyen értéket jelent, vagy mindig. Ha van egy csillag szimbóluma az Óra mezőben, ez azt jelenti, hogy a feladatot óránként végre kell hajtani.,
-A vessző operátor lehetővé teszi az ismétléshez szükséges értékek listájának meghatározását. Például, ha1, 3, 5
van az Óra mezőben, akkor a feladat 1 és 3 órakor fut 5 órakor.-
-A kötőjel operátor lehetővé teszi az értéktartomány meghatározását. Ha1-5
van a hét napja mezőben, akkor a feladat minden hétköznap fut (hétfőtől péntekig)./
-A perjel operátor lehetővé teszi azoknak az értékeknek a meghatározását, amelyeket egy bizonyos intervallumon megismételnek. Például, ha*/4
van az Óra mezőben, ez azt jelenti, hogy a műveletet négy óránként hajtják végre. Ugyanaz, mint a0, 4, 8, 12, 16, 20
meghatározása. A perjel operátor előtti csillag helyett használhat egy értéktartományt is, az1-30/10
jelentése megegyezik az1, 11, 21
.
Rendszeres Crontab fájlok
A rendszerszintű crontab fájlok szintaxisa kissé eltér a felhasználói crontab fájloktól. Tartalmaz egy további kötelező felhasználói mezőt, amely meghatározza, hogy melyik felhasználó futtatja a cron feladatot.
Számos speciális Cron ütemezési makró használható közös intervallumok meghatározására. Ezeket a hivatkozásokat az öt oszlopos dátum-specifikáció helyett használhatja. A crontab parancs lehetővé teszi a crontab fájl telepítését vagy megnyitását szerkesztés céljából. A crontab paranccsal megtekintheti, hozzáadhatja, eltávolíthatja vagy módosíthatja a cron feladatokat a következő lehetőségekkel: A crontab parancs megnyitja a crontab fájlt a
A cron démon automatikusan beállít több környezeti változót. A rendszergazdák az
Alapértelmezés szerint csak az
Ha az
Ha egyik fájl sem létezik, akkor csak a rendszergazdai jogosultságokkal rendelkező felhasználók használhatják a
Az alábbiakban bemutatunk néhány cron feladat példát, amelyek megmutatják, hogyan kell ütemezni egy feladatot különböző időtartamokon. Futtasson egy parancsot hétfőtől péntekig minden nap 15:00 óráig: Futtasson egy szkriptet 5 percenként, és a standard kimenetet átirányítsa a
Futtasson két parancsot hétfőn 15:00 óráig (használja az operátort
Futtasson egy PHP szkriptet 2 percenként, és írja a kimenetet egy fájlba: Futtasson egy szkriptet minden nap, minden órában, minden órában, 8-tól 16-ig: Futtasson egy szkriptet minden hónap első hétfőjén, 7 órakor Futtassa a forgatókönyvet minden hónap 1. és 15. napján 9: 15-kor: Állítsa be az egyéni
Megtanulta, hogyan hozhat létre cron feladatokat és ütemezheti a feladatokat egy adott dátumon és időben. Ha bármilyen kérdése van, nyugodtan írjon megjegyzést.
* * * * * command(s)
* * * * * command(s)
Előre meghatározott makrók
@yearly
(vagy
@annually
) - A megadott feladatot évente egyszer
@annually
január 1-jén éjfélkor (12:00).
0 0 1 1 *
egyenértékű.
@monthly
- havonta egyszer futtassa a megadott feladatot, a hónap első napjának
@monthly
.
0 0 1 * *
-val egyenértékű.
@weekly
- A megadott feladatot hetente egyszer, vasárnap éjfélkor
@weekly
.
0 0 * * 0
felel meg.
@daily
- A megadott feladatot naponta egyszer futtassa éjfélkor.
0 0 * * *
-nak felel meg.
@hourly
- A megadott feladatot óránként egyszer futtassa az óra elején.
0 * * * *
-nak felel meg.
@reboot
- futtassa a megadott feladatot a rendszer indításakor (indítási idő).Linux Crontab parancs
crontab -e
- A crontab fájl szerkesztése, vagy létrehozása, ha még nem létezik.
crontab -l
- A crontab fájl tartalmának megjelenítése.
crontab -r
- Az aktuális crontab fájl eltávolítása.
crontab -i
- Az eltávolítás előtt egy prompttel távolítsa el a jelenlegi crontab fájlt.
crontab -u
VISUAL
vagy az
EDITOR
környezeti változók által megadott szerkesztő segítségével.Crontab változók
PATH=/usr/bin:/bin
van állítva. Ha a hívott parancs megtalálható a cron által megadott elérési útban, akkor használhatja a parancs abszolút elérési útját, vagy megváltoztathatja a cron
$PATH
változót. Nem adhat bele implicitet
:$PATH
mint ahogy egy szokásos szkriptnél tenné. Az alapértelmezett héj beállítása
/bin/sh
. A
SHELL
változó megváltoztatásával beállíthat egy másik héjat. A
SHELL
a parancsot a felhasználó otthoni könyvtárából hívja meg. A
HOME
változó felülbírálható a crontab beállításaival. Az e-mail értesítést a crontab tulajdonosának küldik el. Az alapértelmezett viselkedés felülírásához használhatja a
MAILTO
környezeti változót az vesszővel elválasztott összes e-mail cím listájával (e-mail címekkel), amelyekről értesítéseket szeretne kapni. Ha a
MAILTO
van
MAILTO
, de üres (
MAILTO=""
), akkor nem kerül levél küldésre.Crontab korlátozások
/etc/cron.deny
és
/etc/cron.allow
fájlok segítségével vezérelhetik, hogy a felhasználóknak melyik férhet hozzá a
crontab
parancshoz. A fájlok egy felhasználónevet tartalmaznak, soronként egy felhasználónevet.
/etc/cron.deny
fájl létezik és üres, ami azt jelenti, hogy minden felhasználó használhatja a crontab parancsot. Ha meg szeretné tagadni egy adott felhasználó számára a crontab parancsokhoz való hozzáférést, adja hozzá a felhasználónevet ehhez a fájlhoz.
/etc/cron.allow
fájl létezik, akkor csak a fájlban felsorolt felhasználók használhatják a
crontab
parancsot.
crontab
parancsot.Cron Jobs példák
0 15 * * 1-5 command
dev null
, csak a szabványos hiba kerül a megadott e-mail címre:
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
a parancsok között):
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
HOME
,
PATH
,
SHELL
és
MAILTO
változókat, és futtasson egy parancsot percenként.
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
Következtetés
A Flickr fotófelvételek ütemezése FlickrQ segítségével
A FlickrQ egy egyszerű online eszköz, amely lehetővé teszi a feltöltések ütemezését a Flickr-be. A képek sorba rendezése nem lehet gyorsabb vagy egyszerűbb!
A biztonsági mentések ütemezése androidon titán biztonsági mentés segítségével
Megtanulja, hogyan kell ütemezni a biztonsági mentéseket az Android rendszerben a titán biztonsági mentés segítségével.
Az e-mail kézbesítés ütemezése gmai-ban a bumerang segítségével
Ütemezze az e-maileket később, és állítson be emlékeztetőket a Gmailben ezzel a Boomerang nevű böngésző-kiegészítővel.