Используем cron в FreeBSD

08.11.2010 - 12:02

В этой заметке хочу рассказать, что такое cron и с чем его едят.
cron - это планировщик заданий, который используется в UNIX-подобных ОС. Этот демон призван выполнять задания по расписанию (т.е. в заданный промежуток времени).
Демон крона находится тут:

[root@router /]# /etc/rc.d/cron
Сам конфигурационный файл cron находится в /etc/crontab и выглядит по дефолту так:
[root@router ~]# cat /etc/crontab
#Для рандомизации, используется в криптографических механизмах - SSH, SSL.
*/11    *       *       *       *       operator /usr/libexec/save-entropy

# Ротация лог-файлов каждый час, если это необходимо.
0       *       *       *       *       root    newsyslog

# Cодержимое каталога /etc/periodic/daily будет запускаться каждых 3 часа на первой минуте часа.
1       3       *       *       *       root    periodic daily

# Cодержимое каталога /etc/periodic/weekly будет запускаться каждую суботу на 15'ой минуте 4'го часа.
15      4       *       *       6       root    periodic weekly

# Содержимое каталога /etc/periodic/monthly будет запускаться каждый первый день месяца на 30'ой минуте 5'го часа.
30      5       1       *       *       root    periodic monthly

#Установите часовой пояс, если часы CMOS настроены по местному времени, в отличие от UTC времени
1,31    0-5     *       *       *       root    adjkerntz -a

# Для примера:
#MRTG
*/5 * * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg --logging /usr/local/www/data/mrtg/tun0.log

#PFSTAT
#*/5 * * * * root /usr/local/bin/pfstat -p -q -r 192.168.1.1:9999 -c /etc/pfstat.conf

#SARG_DAY
*/30 *  * * * root   /usr/local/bin/sarg_1 > /dev/null 2>&1

#SARG_ALL
#*/30 * * * * root   /usr/local/bin/sarg > /dev/null 2>&1

#CLAM_AV
0 2 * * * root /usr/local/bin/freshclam

#SQUID_ROTATE_LOG
0 0 1 * * root /usr/local/sbin/squid -k rotate

#PORTS_UPDATE
0 5 * * 0 root /mnt/cvs_update.sh > /dev/null 2>&1

#BACKUP_LOCAL
0 3 * * * root /mnt/backup.sh > /dev/null 2>&1
                                                                                                                                                             
#PPPOE_RECONNECT
*/60 * * * * root /mnt/reconnect.sh > /dev/null 2>&1

#NTP_SYNC
0 21 * * * root /usr/local/bin/ntpdate -q 127.0.0.1 > /dev/null 2>&1
                                                                                                                                                             
#FSBACKUP
0 4 * * * root /usr/local/fsbackup/create_backup.sh | mail -s "`uname -n` backup report" root

#Delete old log files for SAMBA
0 6 1 * * root /bin/rm -f /var/log/samba/*.old

Формат значений полей crontab:

минута час день_месяца месяц день_недели пользователь команда_для_выполнения
-------------------------------------------------------------------------------------------------------
Допустимые значения:
минута: от 0 до 59
час: от 0 до 23
день_месяца: от 1 до 31
месяц: от 1 до 12 (можно три буквы из названия месяца, регистр не имеет значения от jan до dec)
день_недели: от 0 до 7  (0,7 это воскресенье, можно писать от sun до sat)
пользователь: от лица которого будем выполнять ту, или иную команду.
команда_для_выполнения: путь к выполняемому скрипту или команда.

Вот, еще наглядный пример:
cron.png

Ваша оценка: Нет Средняя: 3.4 (10 votes)