Планировщик заданий Crontab

Каждый пользователь системы имеет свой файл заданий crontab, в котором описано, в какое время и какие программы запускать от имени этого пользователя. Для редактирования файла crontab используется специальная одноименная программа crontab, позволяющая не прерывать процесс cron на время редактирования.

Для особоленивых есть web версия помошника по созданию заданий http://www.corntab.com/pages/crontab-gui

Для редактирования файла crontab вашего пользователя используется команда[2]:

crontab -e
Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели), в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых дефисом, символы ‘*’ или ‘/’. В системных файлах crontab после полей времени указывается пользователь, от которого запускается команда. Все остальные символы в строке интерпретируются как выполняемая команда с её параметрами. Если команда отправляет какой-нибудь текст в стандартный вывод, этот текст отправляется по e-mail пользователю.

* * * * * выполняемая команда
– – – – –
| | | | |
| | | | —– День недели (0 – 7) (Воскресенье =0 или =7)
| | | ——- Месяц (1 – 12)
| | ——— День (1 – 31)
| ———– Час (0 – 23)
————- Минута (0 – 59)
Пример файла crontab:

# как обычно, с символа ‘#’ начинаются комментарии
# в качестве командного интерпретатора использовать /bin/sh
SHELL=/bin/sh
# результаты работы отправлять по этому адресу
MAILTO=paul@example.org
# добавить в PATH домашний каталог пользователя
PATH=/bin:/usr/bin:/home/paul/bin

#### Здесь начинаются задания
# выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
# выполнять 1 числа каждого месяца в 14 часов 15 минут
15 14 1 * * $HOME/bin/monthly
# каждый рабочий день в 22:00
0 22 * * 1-5 echo “Пора домой” | mail -s “Уже 22:00” john

23 */2 * * * echo “Выполняется в 0:23, 2:23, 4:23 и т. д.”
5 4 * * sun echo “Выполняется в 4:05 в воскресенье”
0 0 1 1 * echo “С новым годом!”
15 10,13 * * 1,4 echo “Эта надпись выводится в понедельник и четверг в 10:15 и 13:15”
0-59 * * * * echo “Выполняется ежеминутно”
0-59/2 * * * * echo “Выполняется по четным минутам”
1-59/2 * * * * echo “Выполняется по нечетным минутам”
# каждые 5 минут
*/5 * * * * echo “Прошло пять минут”
# каждое первое воскресенье каждого месяца. -eq 7 это код дня недели, т.е. 1 -> понедельник , 2 -> вторник и т.д.
0 1 1-7 * * [ “$(date ‘+\%u’)” -eq 7 ] && echo “Эта надпись выводится каждое первое воскресенье каждого месяца в 1:00”
Пример Сrontab в Ubuntu 9.10

Редактируем от пользователя user

sudo crontab -e -u user
где user -пользователь от имени которого будет производиться запуск.

# m h dom mon dow command
# Запускаю eMule ночью в 1 час ночи 10 минут
10 1 * * * export DISPLAY=:0 && amule
# Останавливаю eMule утром в 10 часов 10 минут
10 10 * * * export DISPLAY=:0 && killall amule
‘#’ — является комментарием.

export DISPLAY=:0 && -Выводим на дисплей (если есть что выводить)

часто этого недостаточно для запуска графических приложений; для возможности локально подключаться к X-серверу необходимо добавить

xhost +local:
в файл .profile находящийся в домашнем каталоге пользователя.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *