Итак, вот моя проблема, я недавно обновил свой сервер и изменил некоторые jsp-файлы, которые используются для автоматического объявления. В crontab есть все файлы .sh, перечисленные в нем, а файлы .sh запускают файлы jsp для отображения объявлений.
После того, как я закончил обновление файлов jsp, я перезагрузил сервер, и с тех пор объявления перестали работать. Я могу запустить .sh файлы через putty вручную, и они отлично работают, поэтому изменения, внесенные в файлы jsp, не являются проблемой.
Я провел некоторое исследование, прежде чем писать здесь, и проверил системный журнал на наличие записей cron. До момента, когда я перезагрузил свой сервер, служба cron работала как надо. После перезагрузки не было записей в системном журнале для cron.
Я попытался перезагрузить сервер снова, я также попытался перезапустить службу cron, я также даже попытался полностью остановить службу и запустить ее снова безрезультатно. Я не могу понять, почему служба cron внезапно перестала работать, так как не имела ничего общего с cron или какими-либо операционными файлами при обновлении моего сервера.
У кого-нибудь есть предложения относительно того, почему он мог перестать работать? Я использую Ubuntu Server 11.10
1. Запишите все задания крона для всех пользователей включая корень, например:
Перечислять crontab корня
sudo crontab -l
Перечислять Ваш crontab
crontab -l
2. Удалите crontab, завершенный для всех пользователей, использующих следующее
Удалить crontab корня
sudo crontab -r
Удалить Ваш crontab
crontab -r
3. Перезапустите систему
4. Поместите свои задания назад в крон (Предпочтительно крон корня) или путем создания текстового файла, затем указывающего на крон на тот файл или вручную.
Настраивать вручную
sudo crontab -e
Указать на крон на текстовый файл
sudo crontab <filename>
Логически, предпочтительно вводимый в порядок происшествия. Например, если у Вас есть задание, которое работает, прежде чем другой (вовремя) помещает это выше.
Помните, что файл крона или crontab должны иметь записи в следующем формате
m h dom mon dow full path command
Например, завершение работы в 14:30 когда-либо день недели кроме выходных было бы
30 14 * * 2,3,4,5,6 /sbin/shutdown
Другой пример работает, файл сценария (test.sh - расположенный в/usr/local/myScripts папке) каждый понедельник в 2:00 был бы
0 2 * * 2 /usr/local/myScripts/test.sh
У меня была та же проблема с кроном, однажды и я не забываю читать на форуме, что мы должны удалить крон пользователя и перезапустить систему, затем воссоздают его.
Если ваш скрипт запускается из интерактивного терминала, но не из crontab, это типично для проблемы среды.
Cron запускает ваши программы в почти пустой среде.
В вашем crontab попробуйте добавить >/tmp/script.log 2>&1
в конце ваших скриптов, чтобы перехватить ошибки в лог-файле.
Вы также можете попытаться запустить свой скрипт с env -i
, чтобы убедиться, что он работает правильно с пустой средой. (env -i /you/script.sh
)
Возможно, вам придется добавить некоторые записи в переменную среды PATH.