本文结合运维真实高频场景,手把手教大家用 LLM 生成可直接落地的运维脚本,覆盖日常 90% 的重复操作。

我是韩先超,51CTO 学堂 K8s、Python 教学总监、AIOps 实战训练营讲师,云计算架构师,具有 8 年项目实战经验+5 年教学经验,线上学员已达 300w+。

做运维的小伙伴,日常大概率都被这件事折磨过:

每天重复敲几十条相似命令:服务器批量巡检、日志清理、服务重启、端口排查、磁盘监控……

明明是机械重复的工作,却必须守着电脑逐条输入,耗时又容易手滑输错,熬夜加班全靠这些无效工作量堆出来。

其实根本不用这么累。

图片

现在借助通用大模型 LLM,我们可以根据自己的运维场景,一键生成专属 Shell、Python 运维脚本,无需任何编程基础,不用网上找别人的开源脚本(规避版权问题),完全适配自己的服务器环境,拿来就能直接用。

今天,我就结合运维真实高频场景,手把手教大家用 LLM 生成可直接落地的运维脚本,覆盖日常 90% 的重复操作,通俗易懂、纯通用无版权,个人、企业内网均可放心使用。

为什么推荐运维用 LLM 生成自定义脚本?

很多运维同学不愿意用网上现成脚本,核心顾虑就两个:

1. 版权风险:网上开源脚本、博主分享代码,商用容易侵权,不敢直接部署到业务服务器;

2. 适配性差:别人的脚本参数、路径、规则都是固定的,和自己的服务器环境不匹配,改脚本比自己敲命令还麻烦。

而自己用 LLM 生成脚本,完美解决以上问题:

  • 100% 原创无版权:根据自身场景实时生成,专属自用,无任何侵权风险;
  • 高度适配环境:可以指定系统(CentOS/Ubuntu)、文件路径、服务名称、监控阈值;
  • 零编程门槛:只需用大白话描述需求,LLM 自动输出可运行代码;
  • 大幅提效:5 分钟生成脚本,后续重复工作一键执行,告别机械敲命令。

运维通用 Prompt 模板(直接复制可用)

很多人用 LLM 写脚本不好用,不是模型不行,是需求描述不清晰。

给大家整理了运维专用的通用 Prompt,适配所有日常场景,直接替换括号内容即可生成精准脚本:

通用运维脚本生成 Prompt:

你是资深Linux运维工程师,请根据我的需求生成一段可直接运行的脚本,要求:
1. 适配【CentOS7/CentOS8/Ubuntu】系统,纯原创无版权,可商用可内网部署;
2. 代码简洁、有详细注释、容错性高,避免报错崩溃;
3. 执行过程有日志输出,操作结果清晰展示;
4. 禁止使用第三方付费依赖,仅使用系统自带命令;
我的具体需求:【填写你的运维场景,如:批量清理3天前的服务器日志、监控磁盘使用率并告警、批量重启Nginx服务】
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

4 个高频运维实战场景+LLM 生成脚本

下面给大家分享运维日常用得最多、性价比最高的 4 个场景,附带现成的 LLM 生成脚本,无需修改,适配绝大多数服务器环境,直接复制部署即可。

场景一:自动清理过期日志(解决磁盘爆满问题)

痛点:业务服务器日志每天持续生成,占用大量磁盘空间,手动定期清理太麻烦,忘记清理就会导致磁盘爆满、服务异常。

LLM 生成脚本功能:自动扫描指定日志目录,清理 3 天前的日志文件,输出清理日志,跳过目录和正在使用的文件,避免误删。

脚本类型:Shell(适配 RedHat 全系列)

#!/bin/bash
# 运维日志自动清理脚本(LLM原创生成,无版权)
# 功能:清理指定目录3天前的.log日志文件,保留最新3天日志
# 适配系统:CentOS7/CentOS8
# 定义日志存放目录,可根据自己服务器环境修改
LOG_DIR="/var/log/nginx /var/log/system /tmp/logs"
# 定义日志保留天数
SAVE_DAY=3
# 定义脚本执行日志
RUN_LOG="/var/log/clean_log_run.log"
# 打印执行时间
echo "==================== $(date +%Y-%m-%d\ %H:%M:%S) 开始执行日志清理 ====================" >> $RUN_LOG
# 循环遍历目录清理过期日志
for dir in $LOG_DIR
do
    # 判断目录是否存在
    if [ -d $dir ];then
        echo "正在清理目录:$dir" >> $RUN_LOG
        # 清理3天前log文件,不删除文件夹、不删除正在占用的文件
        find $dir -name "*.log" -type f -mtime +$SAVE_DAY -delete >> $RUN_LOG 2>&1
        if [ $? -eq 0 ];then
            echo "【成功】$dir 过期日志清理完成" >> $RUN_LOG
        else
            echo "【失败】$dir 日志清理异常,请检查权限" >> $RUN_LOG
        fi
    else
        echo "【警告】目录 $dir 不存在,跳过" >> $RUN_LOG
    fi
done
echo "==================== 本次日志清理执行结束 ====================" >> $RUN_LOG
echo "" >> $RUN_LOG
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.

其中,LOG_DIR 为自己的日志路径。

授权执行:chmod +x clean_log.sh

配置定时任务,每天凌晨自动执行,彻底解放双手。

场景二:服务器基础信息批量巡检脚本

痛点:日常巡检需要逐个查看磁盘、CPU、内存、端口、服务状态,逐条敲命令,耗时且容易遗漏问题。

LLM 生成脚本功能:一键输出服务器核心指标,包含磁盘使用率、内存占用、CPU 负载、端口监听、系统运行时间,巡检结果自动汇总,异常项高亮提示。

#!/bin/bash
# 服务器日常巡检脚本(LLM原创生成,无版权)
# 适配系统:CentOS/Ubuntu 通用
echo "==================== 服务器巡检报告 $(date +%Y-%m-%d\ %H:%M:%S) ===================="
echo "【1.系统基础信息】"
hostname
uname -r
echo "系统运行时间:$(uptime)"
echo -e "\n【2.CPU负载信息】"
uptime | awk '{print "1分钟负载:"$3" 5分钟负载:"$4" 15分钟负载:"$5}'
echo -e "\n【3.内存使用信息】"
free -h
echo -e "\n【4.磁盘使用信息】"
df -h | grep -v tmpfs
echo -e "\n【5.关键端口监听状态】"
ss -tulpn | grep -E "80|443|22|3306|6379"
echo -e "\n【6.磁盘使用率异常检测】"
df -h | awk 'NR>1 {gsub(/%/,"");if($5>80)print "【警告】磁盘分区"$1"使用率过高:"$5"%"}'
echo "==================== 巡检报告生成完成 ===================="
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

使用场景:每日开机巡检、故障排查快速自查、批量服务器状态核对。

场景三:Nginx 服务一键重启&异常自愈脚本

痛点:Nginx 是高频使用服务,经常出现挂掉、启动失败、配置报错的问题,手动重启、校验配置繁琐,业务故障恢复慢。

LLM 生成脚本功能:自动校验 Nginx 配置、停止/重启服务、检测启动状态,启动失败自动输出报错信息,无需人工逐条排查。

#!/bin/bash
# Nginx一键重启自愈脚本(LLM原创生成,无版权)
echo "==================== 开始执行Nginx重启操作 ===================="
# 1.校验Nginx配置是否合法
echo "1.正在校验Nginx配置文件..."
nginx -t
if [ $? -ne 0 ];then
    echo "【错误】Nginx配置文件异常,终止重启,请检查配置!"
    exit 1
fi
echo "【成功】配置文件校验通过"
# 2.重启Nginx服务
echo "2.正在重启Nginx服务..."
systemctl restart nginx
# 3.检测服务运行状态
echo "3.检测Nginx运行状态..."
STATUS=$(systemctl status nginx | grep active | awk '{print $3}')
if [ "$STATUS" = "(running)" ];then
    echo "【成功】Nginx服务重启完成,运行正常"
else
    echo "【错误】Nginx服务启动失败,请查看日志排查问题"
    systemctl status nginx
fi
echo "==================== 操作执行结束 ===================="
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

场景四:批量检测服务器端口连通性脚本

痛点:业务联调、故障排查时,需要检测多台服务器端口是否通、防火墙是否放行,手动 telnet 测试效率极低。

LLM 生成脚本功能:批量检测指定 IP+端口,自动判断通断状态,输出清晰结果,适配内网服务器批量检测。

#!/usr/bin/env python3
# 端口连通性批量检测脚本(LLM原创生成,无版权)
# 无需额外安装依赖,Python3系统自带即可运行
import socket
import time
# 自定义需要检测的IP和端口列表,可自行增减
check_list = [
    ("127.0.0.1", 80),
    ("127.0.0.1", 443),
    ("127.0.0.1", 3306),
    ("127.0.0.1", 6379)
]
print("========== 端口连通性检测开始 ==========")
print(f"检测时间:{time.strftime('%Y-%m-%d %H:%M:%S')}")
for ip, port in check_list:
    try:
        # 设置超时时间1秒
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(1)
        result = sock.connect_ex((ip, port))
        if result == 0:
            print(f"✅ {ip}:{port} 端口通畅")
        else:
            print(f"❌ {ip}:{port} 端口不通")
        sock.close()
    except Exception as e:
        print(f"❌ {ip}:{port} 检测异常:{str(e)}")
print("========== 端口检测全部完成 ==========")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.

运维使用 LLM 写脚本的 3 个小技巧

1. 尽量精准描述场景

告诉 LLM 你的系统版本、需要实现的功能、是否需要日志、是否需要定时执行,脚本适配度更高。

2. 生成后简单自测

所有脚本先在测试服务器运行,确认无误删除、无报错后,再部署到生产环境。

3. 个性化迭代优化

如果脚本功能不够用,可以继续让 LLM 迭代,比如 “增加告警功能、增加日志压缩功能”,按需优化。

总结

运维的核心价值,从来不是机械重复敲命令,而是解决故障、优化架构、保障业务稳定。

借助 LLM 生成专属运维脚本,既能彻底摆脱重复劳动,提升工作效率,又能规避网上脚本的版权风险,适配自己的业务环境,安全又省心。

以上 4 套脚本覆盖了日志清理、日常巡检、服务运维、端口检测四大高频场景,大家可以直接复制使用,也可以根据自己的工作场景,使用通用 Prompt 生成更多自定义脚本。

本文来自微信公众号:哒哒工具库,欢迎关注!

文章来自:51CTO

 

Loading

作者 yinhua

发表回复