首页/系统/Linux 运维命令速查/场景:用 at 安排维护窗口操作
定时任务与计划50 条

场景:用 at 安排维护窗口操作

临时改配置、夜里重启服务、半小时后回滚:把操作写成幂等脚本用 at 排队,避免留在 SSH 会话里「手动等到点」。

Linux 运维命令速查系统更新于 2026-10-12
场景临时维护窗口一次性操作
原则脚本化 + 可回滚 + 有日志
工具at -f + 日志重定向

维护脚本(幂等)

维护脚本(幂等)
#!/usr/bin/env bash
set -euo pipefail
exec >> /var/log/maint.log 2>&1
echo "$(date -Is) maint start"
# 示例:重启应用并验证健康
systemctl restart app.service
for i in $(seq 1 30); do curl -fsS http://127.0.0.1:8080/health && break; sleep 2; done
echo "$(date -Is) maint done"

提交与核对

提交与核对
chmod +x /opt/scripts/maint-restart.sh
at -m -f /opt/scripts/maint-restart.sh 03:00
atq
# 到点后验收
tail -n 20 /var/log/maint.log
关键操作前留好回滚:改配置类任务先 cp 备份,重启类任务确认健康检查 URL 与超时。

易错点

  • SSH 会话里 nohup sleep 等到点执行容易随会话/重启丢失,用 at 交给任务队列更可靠
  • 维护脚本没有并发保护时可能与 cron 任务撞车(如备份进行中重启服务),窗口要错开

数据来源与参考

  • man 1 at
  • man 1 systemctl

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌