You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Shell脚本实现AWS Linux实例每周一自动重启?

AWS EC2实例每周一定期重启最优方案

分两类实现方案,优先推荐AWS云原生无运维的方案,其次是你要求的服务器本地脚本方案:

方案1:AWS EventBridge + IAM 原生方案(优先推荐)

不需要在你的实例上部署任何脚本,不需要依赖实例自身的网络、进程状态即可执行,可靠性更高。

  • 首先创建拥有EC2重启权限的IAM角色:权限策略添加ec2:RebootInstances操作,资源指定你的实例ARN即可,避免权限溢出。
  • 打开AWS EventBridge控制台,创建新的规则:
    • 规则类型选「定时规则」
    • cron表达式填 0 12 ? * MON * (可以按需修改时区和具体时间,示例为每周一UTC时间12点触发)
    • 目标类型选「AWS服务」→「EC2 Reboot API调用」
    • 选择你要重启的实例ID,关联之前创建的IAM角色即可。

这个方案不需要维护脚本,触发成功率远高于本地脚本,也不需要消耗实例自身的资源。

方案2:服务器本地crontab + AWS CLI 脚本方案(符合你要求的服务器内运行实现)

适合不想额外配置云服务的场景:

  • 首先在实例上安装AWS CLI,执行aws configure配置拥有EC2重启权限的AK/SK,或者给实例绑定拥有重启权限的IAM角色(更安全,不需要硬编码密钥)。
  • 编写重启脚本,内容如下:
#!/bin/bash
# 替换为你的实例ID
INSTANCE_ID="i-xxxxxxxxxxxxxx"
aws ec2 reboot-instances --instance-ids $INSTANCE_ID
# 可选:添加日志记录
echo "[$(date)] 实例重启指令已发送" >> /var/log/ec2_reboot.log
  • 给脚本添加执行权限:chmod +x /path/to/your/reboot_script.sh
  • 配置crontab定时任务,执行crontab -e添加如下行:
0 12 * * 1 /path/to/your/reboot_script.sh

示例为每周一本地时间12点执行,你可以根据需求调整时间字段。

注意事项:如果用本地脚本方案,需要确保crond服务一直正常运行,实例的IAM权限/AK密钥没有过期,否则会触发失败。

内容的提问来源于stack exchange,提问作者Faiz P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:45:08