程序员用AI生成运维脚本,自动化巡检服务器

服务器巡检如果靠人工登录逐台敲命令,不仅效率低,还容易漏看关键指标。
程序员用AI生成运维脚本,可以快速得到一份能跑的Shell脚本,自动检查CPU、内存、磁盘和关键服务,再配合crontab定时执行,基本能替代日常手工巡检。
下面从零开始,带你走完从生成脚本到验证效果的完整流程。

先明确巡检目标和运行环境

动手之前,先确认三件事:脚本要检查哪些指标、在哪台机器上跑、用什么方式触发。
常见的基础巡检项包括:

  • CPU负载:uptime/proc/loadavg
  • 内存使用率:free -m
  • 磁盘使用率:df -h
  • 关键进程:pssystemctl is-active
  • 网络连通性:pingcurl

环境方面,绝大多数Linux发行版都自带Bash,脚本无需额外安装依赖。
如果你用的是宝塔面板,可以在“计划任务”里添加Shell脚本,路径在面板左侧菜单“计划任务”->“添加任务”->任务类型选“Shell脚本”。

用AI生成脚本的提示词怎么写

AI生成的脚本质量,很大程度取决于你的描述是否具体。
不要只说“帮我写个巡检脚本”,建议把指标、阈值、输出格式都讲清楚。
例如:

请生成一个Linux服务器巡检Shell脚本,要求:
1. 检查CPU负载(1分钟、5分钟、15分钟),超过CPU核心数时告警;
2. 检查内存使用率,超过85%告警;
3. 检查根分区磁盘使用率,超过80%告警;
4. 检查nginx和sshd服务是否运行;
5. 输出格式:每项显示“正常”或“告警:具体值”;
6. 脚本开头定义变量,方便修改阈值。

把这段提示词发给AI,得到的脚本通常已经可用。
拿到后不要直接扔到生产环境,先复制到测试机或临时目录跑一遍。

关键步骤:保存脚本并赋予执行权限

假设AI生成的脚本内容如下(可根据实际情况调整):

#!/bin/bash
# 服务器基础巡检脚本
CPU_THRESHOLD=80
MEM_THRESHOLD=85
DISK_THRESHOLD=80

# CPU负载检查
cpu_cores=$(nproc)
load1=$(awk '{print $1}' /proc/loadavg)
load_percent=$(echo "$load1 $cpu_cores" | awk '{printf "%.0f", ($1/$2)*100}')
if [ "$load_percent" -gt "$CPU_THRESHOLD" ]; then
  echo "CPU负载告警:1分钟负载${load1},核心数${cpu_cores}"
else
  echo "CPU负载正常"
fi

# 内存检查
mem_used=$(free -m | awk 'NR==2{printf "%.0f", $3/$2*100}')
if [ "$mem_used" -gt "$MEM_THRESHOLD" ]; then
  echo "内存告警:使用率${mem_used}%"
else
  echo "内存正常"
fi

# 磁盘检查
disk_used=$(df -h / | awk 'NR==2{print $5}' | sed 's/%//')
if [ "$disk_used" -gt "$DISK_THRESHOLD" ]; then
  echo "磁盘告警:根分区使用率${disk_used}%"
else
  echo "磁盘正常"
fi

# 服务检查
for svc in nginx sshd; do
  if systemctl is-active --quiet $svc; then
    echo "$svc 运行正常"
  else
    echo "$svc 未运行"
  fi
done

保存为 /opt/scripts/check.sh,然后执行:

chmod +x /opt/scripts/check.sh
/opt/scripts/check.sh

如果看到类似“CPU负载正常”“内存正常”的输出,说明脚本基本可用。

配置定时任务实现自动巡检

手动执行一次不算自动化,用crontab让脚本每天定时跑。
执行 crontab -e,添加一行:

0 8 * * * /opt/scripts/check.sh >> /var/log/server_check.log 2>&1

这表示每天早上8点执行巡检,结果追加到日志文件。
保存后可以用 crontab -l 确认任务已添加。

如果你用宝塔面板,直接添加计划任务:任务类型选“Shell脚本”,执行周期选“每天”,脚本内容填 /opt/scripts/check.sh,日志会由面板自动记录。

避坑指南:AI脚本常见的几个坑

AI生成的脚本不一定完全贴合你的系统,下面这些地方容易出问题:

  • 路径写死:AI可能假设服务装在 /usr/local/nginx,实际用systemd管理时直接用 systemctl 更稳。
  • 阈值不合理:默认80%的磁盘阈值对日志量大的机器可能偏低,建议按业务调整。
  • 命令不存在:部分精简系统没有 nproc,可以用 grep -c ^processor /proc/cpuinfo 替代。
  • 权限问题:crontab执行环境和登录shell不同,脚本里尽量用绝对路径,避免依赖环境变量。
  • 中文乱码:如果日志出现乱码,在脚本开头加 export LANG=en_US.UTF-8zh_CN.UTF-8

效果验证与后续优化

脚本跑起来后,检查日志文件:

cat /var/log/server_check.log

确认输出包含各项检查结果,并且时间戳是最近一次执行时间。
如果某台机器没有产生日志,先检查crontab服务是否运行:systemctl status crond(CentOS)或 systemctl status cron(Debian/Ubuntu)。

后续想让巡检更实用,可以加入邮件告警或Webhook推送。
比如在脚本末尾增加:

if echo "$result" | grep -q "告警"; then
  curl -X POST -H "Content-Type: application/json" -d '{"msg":"服务器巡检异常"}' https://你的webhook地址
fi

这样只有出现告警时才通知,避免每天收到无用消息。

常见问题

AI生成的脚本能直接在生产环境用吗?
不建议直接使用。先复制到测试环境运行,确认输出符合预期、没有误报后再部署到生产机器。

脚本执行后没有任何输出怎么办?
检查脚本是否有执行权限,以及是否在crontab中使用了绝对路径。可以手动执行 bash -x /opt/scripts/check.sh 查看详细执行过程。

用AI生成运维脚本需要付费吗?
大部分AI工具都有免费额度,足够生成基础巡检脚本。如果脚本较复杂,可以分多次对话让AI补充功能,不必一次性追求完美。

巡检脚本多久跑一次合适?
一般服务器每天一次即可,核心业务机器可以每6小时一次。频率太高会增加日志量,太低可能错过突发问题,建议根据业务重要性调整。

整体来说,程序员用AI生成运维脚本,核心价值在于快速得到可运行的代码骨架,再结合自己的环境微调。
把脚本放到crontab或宝塔计划任务里,自动化巡检服务器就真正落地了。
第一次配置时建议手动触发一次,确认日志和告警都正常,后面基本不用再操心。

分享到:
上一篇
AI Agent监控网站状态,自动告警故障通知
下一篇
AI代码漏洞检测,扫描CMS源码安全缺陷
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意