Настройка серверов и сайтов на Linux/Unix под "ключ". Услуги системного администратора. Всегда онлайн в телеграм.

Регистрация Войти
Вход на сайт
Качественные бесплатные шаблоны dle скачать с сайта
» » » cron - планировщик заданий

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

14-08-2010
Автор: synergix
Просмотров: 9 437
Комментариев: 0
Версия для печати
Cron - чрезвычайно удобный планировщик, способный делать все, что Вы ему скомандуете сделать. А выполнять Ваши указания он будет с заданной по времени периодичностью по расписанию.От в отличии от "Планировшика" в оффтопике - это сверхновая свезда по сравнению с пламенем свечи.

Конфигурационный файл cron’а - /etc/crontab. В нем содержатся все основные инструкции планировщика. В данном файле администратор (root) может ставить на выполнение задания от имени определенных пользователей, соответственно, ограничивая запускаемые процессы в правах. Cron всегда работает с правами root, но выполняет задания только от того имени, которое указано в /etc/crontab, либо (если этот крон был назначен обычным пользователем) - от имени того пользователя, что его назначил.


Для запуска крона при старте системы, править что-либо в /etc/rc.conf нет необходимости. Здесь его можно только отключить. Все параметры запуска cron указаны в стартовом файле по-умолчанию /etc/defaults/rc.conf
% cat /etc/defaults/rc.conf | grep cron
# Разрешать запуск планировщика? Да.
  cron_enable=”YES”
# Какую запускать программу для этого?
  cron_program=”/usr/sbin/cron”
# Следущую строку я не осилил… %)
# Handle DST transitions intelligently (YES/NO)
  cron_dst=”YES”
# Дополнительные флаги для старта крон.
# (Этот параметр следует переопределять в /etc/rc.conf)
  cron_flags=”"
# Куда наш крон будет сохранять изменения в системе?
# Если выставить параметр “NO” то не будет никуда.
  entropy_dir=”/var/db/entropy”


Крон будет автоматически запускаться при старте системы и, повиснув демоном (системной службой), будет отслеживать все изменения в /etc/crontab и в пользовательских crontab’ах.
# ps -ax | grep cron
 1221  ??  Ss     0:02,30 /usr/sbin/cron -s


Дефолтный конфигурационный файл /etc/crontab выглядит таким образом:
#
# root's crontab
#
# В первую очередь прописываются переменные окружения
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#
# А с этого места начинаются задания, но для начала в качестве подсказки,
# описания что означает каждый столбец
#
#[мин][час][числа][месяц][дни_недели][юзер][команда]
#

# Следущая команда раз в пять минут создает такой себе
# "список отложенных задач". Подробнее: man atrun
*/5    *      *     *       *         root    /usr/libexec/atrun

# А это задание заставляет один раз в час
# "проснуться" программу newsyslog которая,
# если нужно, ротирует (сжимает) лог файлы
0      *      *     *       *         root    newsyslog

# Ну, а это задания, касающиеся ежесуточного аудита системы.
# По выполнении этих заданий на почту root приходят письма с
# отчетом что нового произошло на сервере за последние сутки.
01     3      *     *       *         root    periodic daily
15     4      *     *       6         root    periodic weekly
30     5      1     *       *         root    periodic monthly

# Два раза в час происходит корректировка системных часов.
#1,31 0-5     *     *       *         root    adjkerntz -a


Это файл конфигурации по-умолчанию для Вашего cron’а. В него по аналогии можно добавить любые другие задания и крон тут же (после того, как Вы сохраните этот файл) примет их к сведению.

При редактировании crontab между колонками должен быть минимум один пробел, либо одна табуляция. Имя пользователя указывать необязательно. Если имя пользователя не указано, команду или скрипт крон выполнит от имени пользователя root.

Кроме root’ового crontab, существуют также пользовательские. Хранятся они в каталоге /var/cron/tabs/. Названия crontab файлов совпадают с именами пользователей, которым они принадлежат. Здесь также может находиться еще один crontab файл пользователя root, сгенерированный командой crontab -e. Все задания, указанные в crontab’ах каталога /var/cron/tabs/ выполняются cron’ом от имени того пользователя, что их создал. В пользовательском crontab нельзя опционально указать имя пользователя, от которого будет запускаться задание. Если crontab принадлежит пользователю, то только от имени пользователя (и с его правами) будут выполняться все команды в нем.

Чтобы создать или отредактировать собственный пользовательский crontab со списком запланированных заданий, выполните команду:
$ crontab -e


При этом откроется Ваш редактор по-умолчанию (прописанный в переменной окружения EDITOR), в котором Вы сможете отредактировать свой crontab. Его формат будет полностью аналогичен /etc/crontab, за исключением столбца “имя пользователя” - его не будет. После редактирования сохраните файл и выйдите из редактора. Для просмотра Ваших запланированных заданий выполните команду.
$ crontab -l


Пользователь root также имеет возможность использовать данную утилиту с ключом -u [имя пользователя], для просмотра и внесения изменений в пользовательские crontab файлы
% crontab -l -u synergix
#
# Crontab configuration file for synergix
#
SHELL=/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
HOME=/home/synergix
#
00  01   *   *   *    ~/some-script.sh
#


Использование запланированных заданий обычно позволяет в немалой степени автоматизировать работу некоторых процессов в системе.
Теги: unix freebsd cron
Рейтинг статьи:
  • 0
Нашли ошибку?   
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.