Аватарка

Cron - планировщик заданий linux

crontab файлы - файлы конфигурации демона cron (crond - RedHat)

/var/spool/cron - пользовательские crontab файлы
/var/spool/cron/crontabs - пользовательские crontab файлы (debian,ubuntu)
/var/spool/cron/tabs - пользовательские crontab файлы (SUSE)

/etc/cron.d - каталог для системных и административных crontab файлов
/etc/cron.daily - ежедневные задачи
/etc/cron.weekly - еженедельные
/etc/cron.monthly - ежемесячные
/etc/crontab - файл для системных и административных задач

файл /etc/crontab ubuntu  9.04

root@servername:/etc/cron.d# cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

#

Где

m    минута       0-59
h    час          0-23
dom  день         0-31
mon  месяц        0-12
dow  день недели  0-6 (0-воскресенье)

m,h,dom.mon,dow можно задать как

0,30 - целое число
* - любое целое число
3-21 - диапазон значений
4,5-8,21 - целое число и/или диапазон значений и/или любое целое число разделеные запятыми
0,3,6,9,12,18 = 0-18/3

Пример:  0,30 * 13 * 5 означает: "каждые полчаса по пятницам и каждые полчаса 13-го числа месяца", а не "каждые полчаса в пятницу 13-го"

command - это команда выполняемая интерпретатором считается до конца строки и может содержать пробелы


Так прямого доступа в каталог /var/spool/cron нет для управления crontab файлами служит команда crontab

crontab -e Откроет для редактирования (в текстовом редакторе по умолчанию) crontab файл пользователя под которым выполнялась команда
crontab имя_файла заменить старый crontab файл на новый
crontab -l отобразит содержимое текущего crontab файла
crontab -r удалит текущий crontab файл

Под root можно редактировать crontab файлы пользователей
crontab -u имя_пользователя -e

Если запустить crontab без параметров она будет читать данные из стандартного входного потока ... следует использовать <Ctr+C> для выхода, не <Ctr+D> в этом случае crontab файл будет удален
Для некотрых версий что бы получить тот же эффект неободимо сделать так crontab dash

/etc/cron.allow - содержит пользователей имеющих доступ к cron, остальным cron запрещен
/etc/cron.deny - те кому крон запрещен, остальным разрешен

Если файлов нет, то только root может создавать crontab файлы
Tags: ,