crontab неожиданно перестал работать
Итак, вот моя проблема, я недавно обновил свой сервер и изменил некоторые JSP-файлы, которые используются для автоматического объявления. В crontab есть все.sh-файлы, перечисленные в нем, а.sh-файлы запускают jsp-файлы для отображения объявлений.
После того, как я закончил обновление файлов jsp, я перезагрузил сервер, и с тех пор объявления перестали работать. Я могу запустить.sh файлы через putty вручную, и они отлично работают, поэтому изменения, внесенные в файлы jsp, не являются проблемой.
Я провел некоторое исследование перед публикацией здесь и проверил системный журнал на наличие записей cron. До момента, когда я перезагрузил свой сервер, служба cron работала как надо. После перезагрузки не было записей в системном журнале для cron.
Я попытался перезагрузить сервер снова, я также попытался перезапустить службу cron, я также даже попытался полностью остановить службу и запустить ее снова без эффекта. Я не могу понять, почему служба cron внезапно перестала работать, так как ничего не касалось cron или каких-либо операционных файлов, которые были затронуты во время обновления моего сервера.
У кого-нибудь есть предложения относительно того, почему он мог перестать работать? Я использую Ubuntu Server 11.10
2 ответа
1. Запишите все задания cron для всех пользователей, включая root, например:
Чтобы перечислить crontab рута
sudo crontab -l
Перечислить ваш crontab
crontab -l
2. Удалите crontab для всех пользователей, используя следующие
Чтобы удалить crontab рута
sudo crontab -r
Чтобы удалить ваш crontab
crontab -r
3. Перезагрузите систему
4. Поместите ваши задания обратно в cron (предпочтительно cron root), либо создав текстовый файл, затем указав cron на этот файл, либо вручную.
Настроить вручную
sudo crontab -e
Чтобы указать cron на текстовый файл
sudo crontab <filename>
Логично, что желательно вводить в порядке появления. Например, если у вас есть работа, которая выполняется до другого (по времени) места, указанного выше.
Помните, что файл cron или 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
Однажды у меня была такая же проблема с cron, и я помню, как читал на форуме, что нам нужно удалить cron пользователя и перезапустить систему, а затем воссоздать ее.
Если ваш скрипт выполняется из интерактивного терминала, но не из crontab, это типично для проблемы среды.
Cron запускает ваши программы в почти пустой среде.
В вашем crontab попробуйте добавить >/tmp/script.log 2>&1 в конце ваших сценариев, чтобы поймать ошибки в лог-файл.
Вы также можете попробовать запустить свой скрипт с env -i чтобы убедиться, что они работают правильно с пустой средой. (env -i /you/script.sh)
Возможно, вам придется добавить некоторые записи в переменную окружения PATH.