(c) Павел Беляев

При использовании статей с сайта добавляйте в копирайт © Блог Павла Беляева http://pavelb.ru

суббота, 18 июня 2011 г.

планировщик Cron и утилита crontab (для новичков)

Как например сделать чтобы ежедневно в 8 утра скачивался прайс с сайта поставщика, обрабатывался нужными парсерами и заливался в БД сайта?

На линуксе такие задачи решаемы просто, для этого создан планировщик cron, а для управления заданиями крона -  есть утилитка crontab

Минимальный список команд

изменить задания для текущего пользователя
crontab -e

изменить задания для пользователя pavel
crontab -e -u pavel

просмотреть задания текущего пользователя
crontab -l 

просмотреть задания пользователя pavel
crontab -l -u pavel




Синтаксис заданий

При открытии заданий (например crontab -e) открывается текстовый файл в редакторе по умолчанию, у меня например это nano.

Каждое задание пишется с новой строки, синтаксис зааний примерно следующий

{событие(время)} {действие}



События можно писать, например, так:

@reboot        Run once, at startup. - при включении компьютера
@yearly        Run once a year, "0 0 1 1 *". - каждый год
@annually      (same as @yearly)
@monthly       Run once a month, "0 0 1 * *". - каждый месяц
@weekly        Run once a week, "0 0 * * 0". - каждую неделю
@daily         Run once a day, "0 0 * * *". - каждый день в 00:00
@midnight      (same as @daily)
@hourly        Run once an hour, "0 * * * *". - каждый час



@reboot sh /root/script.sh
при включении компьютера запускать шел-скрипт по указанному адресу





А можно так:
* * * * *


описание полей слева-направо
минуты         0-59
часы           0-23
день месяца   1-31
месяц          1-12 (or names, see below)
день недели    0-7 (0 or 7 is Sun, or use names) 0 - вс, 1 - пн, 2 - вт, 3 - ср, 4 - чт, 5 пт, 6 - сб, 7 - вс.


2 5 25 2 * shutdown -h now

25 февраля в 5 часов и 02 минут выключить компьютер

* */3 * * * reboot
каждые 3 часа перезагружать компьютер

* * * * 6  killall qutim
по субботам каждую минуту убивать аську qutim (чтобы юзер не пропадал в аське)




Для более подробной справки наберите команду
man 5 crontab

Комментариев нет:

Отправить комментарий