Вход/Регистрация
Внутреннее устройство Linux
вернуться

Уорд Брайан

Шрифт:

# hwclock —systohc –-utc

7.6. Планирование повторяющихся задач с помощью службы cron

Служба cron в Unix повторно запускает команды на основе постоянного расписания. Большинство опытных администраторов считают службу cron особо важной для системы, поскольку она способна выполнять автоматическое обслуживание системы. Например, она выполняет запуск утилит для чистки файлов журналов, чтобы ваш жесткий диск не переполнялся старыми файлами журналов. Вам следует знать, как использовать службу cron, поскольку она, безусловно, полезна.

С помощью службы cron можно запустить любую команду в любое удобное для вас время. Команда, запущенная с помощью службы cron, называется заданием cron. Чтобы создать задание cron, необходимо внести запись в файл crontab, обычно с помощью команды crontab.

Например, для настройки ежедневного запуска команды /home/juser/bin/spmake в 9:15 утра запись выглядит так:

15 09 * * * /home/juser/bin/spmake

Пять разделенных пробелами полей в начале этой строки определяют запланированное время (см. также рис. 7.3). Эти поля обозначают следующее:

• минута (от 0 до 59). Приведенное выше задание cron настроено на запуск в 15-ю минуту;

• час (от 0 до 23). Задание настроено на запуск в 9-й час;

• день месяца (от 1 до 31);

• месяц (от 1 до 12);

• день недели (от 0 до 7). Числа 0 и 7 соответствуют воскресенью.

Рис. 7.3. Запись из файла crontab

Звездочка (*) в любом поле соответствует любому значению. В приведенном примере команда spmake запускается ежедневно, поскольку поля для дня месяца, месяца и дня недели заполнены звездочками, которые служба cron интерпретирует как «запускать данное задание каждый день, каждый месяц и каждый день недели».

Чтобы запускать команду spmake только на 14-й день каждого месяца, можно воспользоваться такой строкой в файле crontab:

15 09 14 * * /home/juser/bin/spmake

Можно указывать более одного значения в каждом поле. Чтобы, например, запускать команду по 5-м и 14-м числам каждого месяца, следует ввести числа 5,14 в третье поле:

15 09 5,14 * * /home/juser/bin/spmake

примечание

Если задание cron создает стандартный вывод, ошибку или некорректно завершает работу, служба cron отправит вам по электронной почте сообщение об этом. Если такие электронные письма вам надоедают, перенаправьте вывод в устройство /dev/null или в какой-либо файл журнала.

Страница руководства crontab(5) содержит полную информацию о формате файла crontab.

7.6.1. Установка файлов crontab

У каждого пользователя может быть свой файл crontab. Это значит, что в системе может быть несколько таких файлов, которые, как правило, располагаются в каталоге /var/spool/cron/crontabs. Обычным пользователям не разрешено выполнять запись в данный каталог. Пользовательский файл crontab можно разместить, просмотреть, отредактировать и удалить с помощью команды crontab.

Простейший способ установить файл crontab — поместить записи в какой-либо файл, а затем воспользоваться командой crontab file, чтобы установить этот файл в качестве текущего файла crontab. Команда crontab проверяет формат файла, чтобы убедиться в отсутствии ошибок в нем. Чтобы вывести список заданий cron, запустите команду crontab -l. Чтобы удалить файл crontab, воспользуйтесь командой crontab -r.

Тем не менее, после того как вы создали начальный файл crontab, использование временных файлов при дальнейшем его редактировании может вызвать неудобства. Вместо этого можно отредактировать и установить файл crontab за один шаг с помощью команды crontab -e. Если вы допустите ошибку, команда crontab сообщит вам о том, где она находится, и предложит вам повторно отредактировать файл.

7.6.2. Системные файлы crontab

Чтобы при планировании повторяющихся системных задач не использовать файл crontab для пользователя с правами superuser, в системах Linux обычно предусмо­трен файл /etc/crontab. Не применяйте команду crontab для редактирования этого файла, поскольку в его записях присутствует дополнительное поле, вставленное перед командой, предназначенной для запуска. В этом поле указан пользователь, который должен запустить задание. Вот, например, задание cron, которое определено в файле /etc/crontab и будет запускаться в 6:42 утра с правами корневого пользователя (root, отмечен символом

):

42 6 * * * root

/usr/local/bin/cleansystem > /dev/null 2>&1

примечание

В некоторых версиях системные файлы crontab хранятся в каталоге /etc/cron.d. Такие файлы могут быть названы как угодно, но все они обладают тем же форматом, что и файл /etc/crontab.

7.6.3. Будущее службы cron

Утилита cron является одним из старейших компонентов системы Linux, она используется уже десятки лет (задолго до самой Linux). За эти годы формат конфигурации изменился ненамного. Сегодня пытаются выполнить замену данной утилиты.

  • Читать дальше
  • 1
  • ...
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: