Cron (Command Run ON) — демон-планировщик задач, система для автоматического запуска приложений и скриптов в заданное время, или через определенные промежутки времени. Для редактирования заданий используется утилита crontab (таблицы, управляющие работой демона cron), командой 'crontab -e' автоматически запускается текстовый редактор и загружается в него файл конфигурации cron (редактировать их вручную не рекомендуется). После выхода из редактора, новая конфигурация cron будет установлена (вступит в силу) автоматически. Если необходимо полностью удалить свой crontab, используется команда crontab -r.
Утилита cron (vixie-cron) использует два разных типа конфигурационных файлов, системный и пользовательский. Файлы crontab создаваемые для отдельных пользователей находятся в каталоге /usr/spool/cron/crontabs/ или /var/spool/cron/tabs/. Файлы crontab используемые для управления всей системой, располагаются в директории /etc/cron.d/. Кроме того, в директориях /etc/cron.daily/, /etc/cron.weekly/ и /etc/cron.monthly/ размещаются автоматически запускаемые приложения (ежедневно, еженедельно или ежемесячно).
Различие между системными и пользовательскими форматами заключается в шестом поле. В системном файле шестое поля это имя пользователя, с правами которого будет запущена команда. Это позволяет запускать команды из системного crontab от любого пользователя. В пользовательском файле шестое поле указывает запускаемую команду и все команды запускаются от пользователя который создал crontab (это важно для безопасности).
Пользовательские crontab позволяют индивидуальным пользователям планировать задачи без привилегий суперпользователя (root). Команды из crontab пользователя запускаются с привилегиями этого пользователя. Пользователь root может использовать собственный crontab, как и любой другой пользователь. Он будет отличаться от системного crontab /etc/crontab. Поскольку существует системный crontab, обычно не требуется создавать пользовательский crontab для root.
Конфигурационный файл cron содержит последовательность командных строк и расписание их вызова. Пустые строки и строки, начинающиеся с символа '#' игнорируются, остальные строки являются установками переменных окружения и командами cron. Запись crontab-файла в общем случае состоит из семи полей:
минуты часы день месяц день_недели имя_пользователя команда
Допустимые значения временных параметров:
- параметр допустимый интервал
- минуты 0-59
- часы 0-23
- день_месяца 1-31
- месяц 1-12
- день_недели 0-7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс)
Поле может быть задано явно или шаблоном:
- звездочка - любая цифра
- целое число
- целые числа через запятую — задание дискретного множества значений
- два целых числа, разделенные дефисом, соответствующие диапазону значений.
Простой пример файла расписания для создания снимка экрана каждый час:
SHELL=/bin/bash MAILTO=username 0 * * * * scrot
Один из самых больших недочетов демона-планировщика Cron заключается в том что он предполагает что сервер или компьютер всегда включен. Если же в установленное время выполнения задачи машина выключена, то задача не будет запущена. Это серьезная проблема для систем, которые не могут быть включены постоянно, потому для устранения этого недочета был разработан «анахронический» демон-планировщик Anacron (наименьший интервал для него день и использовать его надо как дополнение к cron, а не как замещение его).
Использование CRON и команды crontab
Планирование задач с помощью cron и at
Vixie cron - полноценная реализация cron основанная на SysV cron, каждый пользователь в ней имеет свой собственный файл заданий crontab и ему разрешается указывать переменные среды в файлах заданий crontabs (PATH, SHELL, HOME и пр), доступ контролируется файлами cron.allow и cron.deny. В отличие от других видов cron, он также предлагает поддержку SELinux и PAM (/etc/security/limits.conf), но поддерживает меньшее количество архитектур чем Dcron, но большее по сравнению с Fcron.
Вы можете войти под своим логином или зарегистрироваться на сайте.