![]() |
Модераторы: powerfox, ZeeLax |
![]() ![]() ![]() |
|
bilbobagginz |
|
||||||||||||||||||||||||||||||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
Названия каталогов и файлов описаны для Linux(RedHat). Для других операционных систем, названия могут отличаться, но принцип работы cron точно такой же.
Cron это программа, выполняющая задания по расписаню. Позволяет неоднократный запуск заданий. Т.е. задание можно запустить в определенное время или через определенный промежуток времени. Формат и значения полей, для пользовательских файлов crontab, будут приведены в конце статьи. При загрузке системы, запускается демон cron и проверяет очередь заданий at и заданий пользователей в файлах crontab. При запуске, демон cron сначала проверяет каталог /var/spool/cron на наличие файлов crontab, файлы crontab имеют имена пользователей, соответствующие именам пользователей из /etc/passwd Каждый пользователь может иметь только один файл crontab, записей в файле может быть несколько. Другими словами - файлы crontab содержат инструкции для демона cron, который запустит задание(я) описаное в файле crontab. Все файлы crontab из каталога /var/spool/cron загружаются в память, одновременно с ними загружаются файлы из /etc/cron.d После этого демон cron загружает содержимое файла /etc/crontab При стандартных настройках, содержимое /etc/crontab имеет следующий вид:
Информация файла указывает, что:
содержимое каталога /etc/cron.daily будет запускаться каждый день на второй минуте четвертого часа. содержимое каталога /etc/cron.weekly будет запускаться каждое воскресенье на 22'ой минуте 4'го часа. содержимое каталога /etc/cron.monthly будет запускаться каждый первый день месяца на 42'ой минуте 4'го часа. HOME=/ корневой каталог для пользователя (параметр не обязательный) При необходимости доступа к специальным свойствам интерпретатора, значения переменных SHELL и HOME можно изменить, не зависимо от того, что прописано в /etc/passwd MAILTO=root означает кому отсылать сообщение о результате работы команд. Все содержимое из этих каталогов будет запускаться с правами доступа пользователя root и файлы должны иметь права доступа на "выполнение" (про права доступа читай статью http://rst.void.ru/texts/chmod.txt) Поэтому перед размещением файлов в одном из этих каталогов необходимо убедиться, что сценарии не насесут вред системе. После того, как демон cron запущен и прочел содержимое всех файлов crontab, он бездействует, просыпаясь каждую минуту и проверяя не требуется ли запуск какой-либо команды в данную минуту, или не появился ли новый файл crontab который необходимо обработать. Демон cron определяет изменения по времени модификации файлов или каталогов, такое его свойство избавляет от необходимости перезапуска демона. Как отмечалось выше, размещение файлов для cron в каталогах
доступно только пользователю root, для использования файлов crontab пользователями, нужно использовать команду crontab. Команда служит для создания, изменения и добавления файла для демона cron Пример Рассмотрим пример создания файла crontab для пользователя user ,домашняя директория /home/user Задача: запускать каждую минуту файл /home/user/mail, который будет отправлять почту
1.Создаем временный файл /home/user/test содержимое файла test такое:
2. Запускаем в терминале команду crontab /home/user/test Все. После этого в каталоге /var/spool/cron будет создан файл "user" примерно с таким содержимым
и файл /home/user/mail будет запускаться демоном cron каждую минуту. Доступ в каталог /var/spool/cron непривилегированому пользователю закрыт, что бы посмотреть юзером "user" есть ли у него файл crontab ,достаточно набрать команду crontab -l , если файл существует-будет показано его содержимое. Для удаления файла используется команда crontab -r Для редактирования crontab -e Для управления файлами crontab пользователем "root" используется синтаксис:
-u означает чей crontab будет обработан, Если опция не задана, то будет обработан crontab того пользователя, который запустил команду crontab.
(*) см. здесь Формат и значения полей Каждая команда в пользовательском файле crontab занимает одну строку и состоит из шести полей. Пользовательские файлы crontab находятся в каталоге /var/spool/cron Общий формат команды:
Каждое из полей даты и времени может быть обозначено символом * ,будет соответствовать любому возможному значению. Для этих полей можно указывать диапазоны значений, разделенных дефисом, например:
пошаговая запись
равнозначная предыдущему примеру запись (списком)
то же самое с указанием диапазона
Для отладки задания cron, можно перенаправить результат в файл Пример:
Если при запуске команды /home/user/mail возникнут ошибки, то они будут записаны в файл /tmp/tmp.cron и вы всегда сможете узнать причину. В случае перенаправления вывода в файл, письмо, юзеру указаному в переменной MAILTO отправлено не будет. Посмотреть информацию о всех командах запускаемых демоном cron можно в каталоге /var/log называются cron, cron1 и т.д. В файле /var/log/cron записано время запуска всех заданий cron за предыдущий день
В остальных файлах cron1,cron2 находится подобная информация, но более старая чем в cron добавлено bilbobagginz Дополнительная информация администратору отлаживающему таблички-крона: 1. иногда в системах нежелательно разрешать пользователям пользоваться услугами cron, at и т.п., но нужно каким-то образом периодически запускать задачи под пользователем vasya. Для этого используется файл /etc/crontab в файле указывается строка стандартной крон-таблицы, какую мы бы создали в таблице пользователя vasya, но добавляется имя пользователя как 6-е поле слева:
т.е. сценарий запустится раз в месяц, 1-го числа, в 4:42, под пользователем vasya. 2. при разработке скриптов, запускаемых через крон, очень важно знать:
-------------------- Я ещё не демон. Я только учусь. |
||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
![]() ![]() ![]() |
Правила форума "Linux/UNIX: Oбщие вопросы" | |
|
В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу). В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим. Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |