Я использую сервер 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/*
и посмотрите, трогает ли их что-нибудь.