Команды периодического выполнения cron и at
cron
Cron является командой, которая периодически выполняет команды, как
определено в /etc/crontab, и определяемых пользователем crontab'ах. В Debian
1.3 имеется стандартный механизм, чтобы выполнить команды в
/etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly.
Cron стартует с начала загрузки, но это, кажется, изменяет PATH к довольно странному значению:
/usr/bin:/binn:/sbin:/bin:/usr/sbin:/usr/bin |
ЭТО ВЕРОЯТНО БАГ В CRON. Это путь, где имеется /usr/bin:/bin, написанный без
завершающего нуля! Этот баг есть не во всех системах.
В crontab может находится определение PATH. В Debian 1.3 имеется следующая,
заданная по умолчанию, строка в начале /etc/crontab:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin |
Из-за этого PATH программы crond никогда не используется в пользовательских
программах. Все скрипты каталогах в /etc/cron.* получают этот путь по
умолчанию. Этот путь используется, даже если программы выполняются не под
root'ом.
at
at - команда, которая может использоваться для запуска программы в определенное время.
atd запускается, используя путь по умолчанию. Однако, пользовательские
программы всегда работают в операционной среде, используя команду sh.
Поэтому обычно оболочка изменяет этот путь. Смотрите главу по bash.