05 июля 2010

Почему не работает cron?

Сегодня на работе пришлось не много повозиться с cron'ом. Т.к. ранее мне не приходилось пользоваться утилитой crontab, я потратил некоторое время на один пустяк, о которых хотел бы рассказать. Вдруг, кому-нибудь пригодится.
Итак, почему у меня не работал cron? cron — это программа-демон, предназначенная для периодического запуска пользовательских программ через определенные промежутки времени. Настройки запуска хранятся в специальных файлах, которые cron перечитывает каждую минуту, и, если пришло время, запускается указанная задача. Таким образом, минимальная частота запуска задач составляет 1 раз в минуту. Подробнее — man cron, crontab. Следует отметить, что программа может быть запущена от имени определенного пользователя, т.е. рабочим будет его домашний каталог, поэтому желательно указывать полные пути ко всем файлам.
Я не сразу смог настроить cron, потому что не дочитал страницу манов до конца:) Причина звучит так: «Although cron requires that each entry in a crontab end in a newline character, the neither the crontab command nor the cron daemon will detect this error. Instead, the crontab will appear load normally. However, the command will never run. The best choice is to ensure that your crontab has a blank line at the end.»
Т.е. в конце каждой строки настройки в файле crontab, должен стоять символ перевода строки, даже если в файле всего одна строка. Причем, crontab не сообщает о том, что произошла ошибка, а просто cron потом не работает.

Комментариев нет: