25 июл 2010
Как выполнить задачу по расписанию в Linux.
Dmitrius Категория: Web-Мастеру » Уроки
У нас вы можете скачать бесплатно Как выполнить задачу по расписанию в Linux.

Данный материал предоставлен сайтом Skripter.info исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Как выполнить задачу по расписанию в Linux.


Crontab

Для таких целей в Linux имеется crontab. Он запускает ваши скрипты на выполнение в указанное время.
В системе имеется главный файл (назовем его так) crontab, который запускает на выполнение скрипты Linux.

Настройка crontab

Откроем этот файл.
vi /etc/crontab


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

В этих папках (/etc/cron.*) есть скрипты, которые будут запущены, в зависимости от времени указанного в левой части.
Например запись 42 4 1 * * root run-parts /etc/cron.monthly --> выполняется 1-го числа каждого месяца в 4 часа 42 минуты.

Синтаксис crontab

* * * * *
* * * * * День недели (от 0 до 6, где 6 = воскресенье, можно задавать как цифрами так и tue thu)
* * * * * Месяц (от 1 до 12)
* * * * * День месяца (от 1 до 31)
* * * * * Час (от 0 до 23)
* * * * * Минута (от 0 до 59)

Создадим запись crontab

Здесь мы создадим свой файлик crontab.


Для этого необходимо открыть его на запись при помощи crontab -e
Вставить запись
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
10 6 * * 0 /root/sh/rsync-wek.sh

В результате получили выполнение скрипта (по адресу /root/shrsync-wek.sh) каждое воскресенье в 6 часов 10 минут.
Cкрипт rsync-wek.sh должен иметь права на выполнение.

Примеры crontab

*/2 * * * * каждые 2 минуты
2 * * * * каждый час на 2 минуте (в 1 час и 2 минуты в 2часа и 2 минуты и т.д.)
2 * * * 0 будет выполняться на протяжении всего воскресенья каждый час на 2 минуте.
0 0 1 1 * каждый год 31 декабря в 0 часов 0 минут.

Удалить запись crontab -r
Просмотреть crontab -l
crontab -e изменить.
Записи будут сохранены в vi /var/spool/cron/root (в зависимости от того пользователя под которым была создана запись crontab)









Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.