Vyhledávání


vytiskni pdf
Automatizace úkolů

V Linuxu mohou být různé úlohy naprogramovány tak, aby byly prováděny automaticky v určitý čas. Distribuce Red Hat je nakonfigurována tak, že některé úlohy se spouští automaticky a tím aktualizují systém. Například databáze je aktualizována denně. Systémový administrátor může automatické úkoly využít k zálohování, monitoringu systému, spouštění skriptů apod.

Konfigurace úloh Cronu

Hlavní konfigurační soubor cronu: /etc/crontab, obsahuje následující řádky:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 **** root run-parts /etc/cron.hourly
02 4*** root run-parts /etc/cron.daily
22 4 **0 root run-parts /etc/cron.weekly
42 4 1 **root run-parts /etc/cron.monthly


První čtyři řádky obsahují proměnné konfigurující prostředí, ve kterém jsou úkoly cronu spouštěny. Hodnota proměnné SHELL říká systému, který shell se má použít (v tomto případě jde o bash), a proměnná PATH definuje výchozí cestu pro spouštění. Výsledek úloh cronu je posílán e-mailem na adresu definovanou proměnnou MAILTO. Pokud je tato prázdná (MAILTO=""), e-mail nebude poslán. Proměnná HOME se použije k nastavení složky, která se použije pro spuštění příkazů skriptů.

Každý řádek souboru /etc/crontab má tento formát:

minute hour day month dayofweek command

* minute - celé číslo v intervalu 0 - 59
* hour - celé číslo v intervalu 0 - 23
* day - celé číslo v intervalu 1 - 31 (pokud je nastaven měsíc, den musí být platným dnem)
* month - celé číslo v intervalu 1 - 12 (nebo zkratka názvu měsíce)
* dayofweek - celé číslo v intervalu 0 - 7, 0 nebo 7 znamená neděli (nebo zkratka názvu dne v týdnu)
* command - příkaz ke spuštění, např. ls/proc>>/tmp/proc nebo spuštění vlastního skriptu.

U výše uvedených hodnot reprezentuje hvězdička (asterisk) (*) (*) všechny platné hodnoty (hvězdičková konvence). Například: hvězdička místo hodnoty month znamená spuštění příkazu každý měsíc (v závislosti na nastavení ostatních hodnot).

Spojovník (hyphen) (-) umístěný mezi 2 celá čísla označuje rozsah (interval) celých čísel. Například: 1-4 znamená všechna tato čísla: 1, 2, 3, 4.

Seznam hodnot oddělených čárkou (,) znamená prostý výčet. Například: 3, 4, 6, 8 odpovídá právě těmto 4 konkrétním celým číslům.

Lomítko (slash) (/) se může použít k určení rozložených hodnot. Ke změně celého čísla na interval stačí připojit lomítko (/). Například: 0-59/2 definuje minutu ze 2 v poli minut. Tyto rozložené hodnoty lze také použít s hvězdičkou (*). Například: hodnota */3 může být použita v poli month k určení měsíce ze 3.

Řádky začínající mřížkou (hash) (#) označují komentář a jsou ignorovány.

Jak automaticky spustit skript na serveru (v crond)?

Nejprve musíte zajistit, že skript bude v shellu plně funkční, čili že jej bude možno spustit z příkazové řádky. K tomu je třeba v první řádce uvést např. #!/usr/local/bin/php (pokud je skript v PHP), nebo #!/usr/bin/perl (pokud jde o PERL) nebo #!/bin/bash (pokud jde o shell). Potom je třeba nastavit práva pomocí chmod command 700 script.cgi (kde script.cgi je váš skript). Pokud máte přístup pomocí telnetu nebo ssh, můžete funkčnost otestovat pomocí ./script.cgi

Potom v konfiguraci cronu uvedete cestu a čas vykonání (vykonávání) skriptu).

Například:

Nastavení automatického skriptu, který bude používat MRTG grafy:

*/5 **** root /usr/local/mrtg-2/bin/mrtg /home/ovh/www/mrtg/mrtg-sys/mrtg-sys/mrtg_nsxxxx.ovh.net.cfg >/dev/null 2>/dev/null

/home/ovh/www/mrtg/mrtg-sys/mrtg-sys/mrtg_nsxxxx.ovh.net.cfg odpovídá cestě ke spuštění skriptu.
*/5 **** čas spuštění.

Tento skript bude spuštěn každých 5 minut.