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

Исчезновение определений crontab

Я использую сервер Debian на EC2, и несколько дней назад мои определения crontab внезапно исчезли. Просто исчез без провокации!

Есть идеи, что может нести за это ответственность? Не подозреваю о несанкционированном доступе к серверу.

К сожалению, очень легко потерять crontab пользователя (и почти так же легко, когда этот пользователь является пользователем root).

Вот несколько примеров того, как избавиться от одного:

crontab ''

echo $emptyvar | crontab -

crontab emptyfile

crontab -l | oops | crontab -

куда oops представляет некоторую команду, которая должна управлять выводом содержимого с помощью crontab -l перед заменой их с помощью crontab. По какой-то причине («ой») содержимое не проходит через канал.

Вы должны проверить свои скрипты и crontab на наличие каких-либо строк, которые пытаются манипулировать crontab root, и убедиться, что они не делают что-то неправильно.

Кроме того, для пользовательских crontab, когда вы редактируете его самостоятельно, всегда используйте crontab -e.

Возможно, раздел, на котором находится / var, был заполнен.

Если это происходит и / tmp находится в другом разделе, вы можете отредактировать временный файл с помощью crontab -e, но когда вы закончите редактирование, новую версию нельзя будет скопировать в / var / spool / cron /, и в результате вы получите пустой файл.

Я знаю, что это странный случай, но crontab не возвращает ошибок.

Читайте о проблемах с EC2 на forum.aws.amazon.com. Не конкретно эта проблема, но статические данные исчезают после перезагрузки. Возможно, вы захотите принять участие в обсуждениях или обратиться в службу поддержки AWS. А пока я бы написал сценарий для резервного копирования моих crontab на S3 или что-то в этом роде.

Проверьте, действительно ли файл crontab существует в / var / spool / cron / crontab /, прежде чем пытаться его редактировать. Он пуст или создается в данный момент?

Ваш экземпляр EC2 перезагружен?

grep -r crontab /etc/* и посмотрите, трогает ли их что-нибудь.