не публиковал бы здесь сообщения, если бы я не перепробовал все, что смог найти в Интернете ... был бы признателен за любое руководство от опытного системного администратора.
Вот моя проблема: работа cron в /etc/cron.daily
, /etc/cron.hourly
и т. д. работают нормально на моем сервере Slicehost Ubuntu - их выполнение регистрируется в обоих /var/log/syslog
и /var/log/cron.log
Я создал два тестовых задания cron, одно как root, а другое как пользователь-администратор, через crontab, которые должны запускаться каждую минуту. Вот результат crontab -l
запустить как root
$ crontab -l
* * * * * /bin/date > /tmp/unicorns
$ crontab -u neil0 -l
* * * * * /home/neil0/crontab/unicorn.sh >> /home/neil0/logs/crontab.log >&1
РЕДАКТИРОВАТЬ 1: Я не копировал это точно ... в выводе не было новой строки, и это было источником проблемы
вот содержание unicorn.sh
#!/bin/sh
echo 'UNICORNS'
но ни то, ни другое /home/neil0/logs/crontab.log
ни /tmp/unicorns
обновляется, и нет записей об этих заданиях, выполняемых в /var/log/syslog
или /var/log/cron.log
!
прежде чем вы спросите, похоже, что cron запущен -
$ ps aux | grep cron
root 1588 0.0 0.1 18616 980 ? Ss 12:31 0:00 /usr/sbin/cron
root 1798 0.0 0.1 3944 604 pts/0 R+ 13:01 0:00 grep cron
на случай, если вам интересно, что «единорог» - это мое слово разочарования, заменяющее «F ***» с тех пор, как произошла определенная ошибка отладки с живым веб-сайтом, оооочень, как вы можете видеть, я в значительной степени в своем уме. любая помощь будет принята с благодарностью.
Ага. так что, как я предполагаю, большинство из вас уже знают, вам нужно заканчивать файлы crontab новой строкой. в этом была вся проблема. надеюсь, это поможет кому-то другому
Помните, что в crontab, в отличие от оболочки, нужно экранировать специальные символы, т.е.
0 0 * * * backup_command > /var/log/backup-$(date +**\\**%a).log