crontab неожиданно перестал работать

Итак, вот моя проблема, я недавно обновил свой сервер и изменил некоторые jsp-файлы, которые используются для автоматического объявления. В crontab есть все файлы .sh, перечисленные в нем, а файлы .sh запускают файлы jsp для отображения объявлений.

После того, как я закончил обновление файлов jsp, я перезагрузил сервер, и с тех пор объявления перестали работать. Я могу запустить .sh файлы через putty вручную, и они отлично работают, поэтому изменения, внесенные в файлы jsp, не являются проблемой.

Я провел некоторое исследование, прежде чем писать здесь, и проверил системный журнал на наличие записей cron. До момента, когда я перезагрузил свой сервер, служба cron работала как надо. После перезагрузки не было записей в системном журнале для cron.

Я попытался перезагрузить сервер снова, я также попытался перезапустить службу cron, я также даже попытался полностью остановить службу и запустить ее снова безрезультатно. Я не могу понять, почему служба cron внезапно перестала работать, так как не имела ничего общего с cron или какими-либо операционными файлами при обновлении моего сервера.

У кого-нибудь есть предложения относительно того, почему он мог перестать работать? Я использую Ubuntu Server 11.10

2
задан 12 August 2012 в 20:06

2 ответа

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

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

2
ответ дан 12 August 2012 в 20:06

Если ваш скрипт запускается из интерактивного терминала, но не из crontab, это типично для проблемы среды.

Cron запускает ваши программы в почти пустой среде.

В вашем crontab попробуйте добавить >/tmp/script.log 2>&1 в конце ваших скриптов, чтобы перехватить ошибки в лог-файле.

Вы также можете попытаться запустить свой скрипт с env -i, чтобы убедиться, что он работает правильно с пустой средой. (env -i /you/script.sh)

Возможно, вам придется добавить некоторые записи в переменную среды PATH.

0
ответ дан 12 August 2012 в 20:06

Другие вопросы по тегам:

Похожие вопросы: