Остановите работу cron, постоянно перезагружая экземпляр ec2
Я создал скрипт для перезагрузки системы, когда загрузка процессора достигла 90%. Но для некоторых целей тестирования я изменил значение максимальной загрузки ЦП до 0,7%.
Скрипт запрограммирован на запуск перезагрузки системы.
Теперь сервер никогда не подключен к сети - он постоянно перезагружается.
Мой сценарий:
#!/bin/bash
dstat| awk '{ if (int($1)>0.7) {
i=i+1; {
print i, $1
}
}
if (int($1)>0.7) {
j=j+1;
}
if (j>2) {
print "system reboot";
cmd="sudo reboot";
system(cmd)
}
}'
Примечание: скрипт запрограммирован на перезагрузку с помощью crontab:
@reboot /bin/bash /ubuntu/home/reboot.sh
Поэтому я не могу войти с помощью SSH. Потому что система постоянно перезагружается.
Мой сервер является экземпляром AWS ec2
Я попытался передать пользовательские данные через консоль AWS.
sudo apt-get purge dstat
cd /ubuntu/home && sudo rm reboot.sh
sudo /etc/init.d/cron stop
Но это не работает.
Таким образом, любые возможные способы вернуть мой экземпляр будут высоко оценены.
1 ответ
- Остановите экземпляр и посмотрите на диск EBS (запишите точку монтирования)
- Установите жесткий диск неисправного экземпляра (EBS)
- Загрузите новый свежий экземпляр (Ubuntu 18.04, RHEL, тот, который вам удобнее...)
- Подключите неисправный диск к новому экземпляру.
- Смонтируйте файловую систему в
/mnt
(например) - Удалите правило crontab, которое вы добавили в CRONTAB (в
/etc/crontab/
...) - Отсоединить диск EBS
- Подключите к отказавшей машине снова, используя ту же точку монтирования
- Загрузи свою старую машину как всегда; Cron будет отключен
- Удалите машину, которую вы использовали, чтобы изменить FS
Это очень распространенный шаблон: отсоединить сбойную ФС от другой машины, исправить все, что мешает загрузке, и снова подключить ее к старому хосту.
Надеюсь, это решит вашу проблему.