Назад | Перейти на главную страницу

Пользовательские задания cron не выполняются, но системные задания выполняются.

не публиковал бы здесь сообщения, если бы я не перепробовал все, что смог найти в Интернете ... был бы признателен за любое руководство от опытного системного администратора.

Вот моя проблема: работа 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