停止 cron 作业不断重启 ec2 实例

停止 cron 作业不断重启 ec2 实例

我创建了一个脚本,用于在 CPU 负载达到 90% 时重启系统。但出于某些测试目的,我将最大 CPU 利用率的值更改为 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

  1. 停止实例,并查看 EBS 磁盘(记下挂载点)
  2. 分离故障实例 (EBS) 的硬盘
  3. 启动一个新的实例(Ubuntu 18.04、RHEL,您感觉更舒服的那个......)
  4. 将故障磁盘附加到新实例。
  5. 将文件系统挂载到/mnt(例如)
  6. 删除您已添加到 CRONTAB 的 crontab 规则(在/etc/crontab/...中)
  7. 分离 EBS 磁盘
  8. 使用相同的挂载点再次连接到故障机器
  9. 像往常一样启动旧机器;cron将被禁用
  10. 删除你用来更改 FS 的机器

这是一种常见的故障模式,将发生故障的 FS 分离到另一台机器,修复阻止其启动的任何问题,然后将其重新连接到旧主机。

希望它能解决你的问题。

相关内容