2026年运维实战:提升效率的Shell与Python自动化脚本分享
2026年运维实战:提升效率的Shell与Python自动化脚本分享
在2026年的IT运维领域,虽然AIOps和Serverless架构已经高度普及,但底层的自动化逻辑依然离不开轻量级、高效率的脚本支撑。无论是云原生环境下的微服务治理,还是传统数据中心的日常巡检,Shell与Python始终是运维工程师手中的“瑞士军刀”。本文将分享几个在2026年依然极具实战价值的自动化脚本,帮助大家从繁琐的重复劳动中解放出来。
一、 批量服务器基础健康巡检脚本(Shell)
在多节点、高并发的生产环境中,手动登录每台服务器检查CPU、内存和磁盘状态是不现实的。下面这个Shell脚本结合了sshpass与多线程并发,可快速完成批量巡检,并以格式化的方式输出结果。
#!/bin/bash
# 2026年批量服务器健康巡检脚本
# 定义服务器列表文件(每行格式:用户名@IP)
SERVER_LIST="servers.txt"
SSH_PASS="YourStrongPassword123"
ALERT_THRESHOLD_DISK=80 # 磁盘告警阈值(%)
# 巡检函数
check_health() {
host=$1
echo "--- 正在巡检: $host ---"
# 使用sshpass实现非交互式SSH,获取CPU、内存和磁盘信息
sshpass -p "$SSH_PASS" ssh -o StrictHostKeyChecking=no $host << 'EOF'
HOSTNAME=$(hostname)
CPU_LOAD=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
MEM_USAGE=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2}')
DISK_USAGE=$(df -h | awk '$NF=="/"{printf "%s", $5}')
echo "主机名: $HOSTNAME"
echo "CPU负载: ${CPU_LOAD}%"
echo "内存使用: $MEM_USAGE"
echo "根分区使用: $DISK_USAGE"
# 磁盘超限告警逻辑
if [ "${DISK_USAGE%\%}" -gt 80 ]; then
echo "[告警] $HOSTNAME 根分区使用率超过80%,请及时清理!"
fi
EOF
}
# 并发执行巡检
while read -r server; do
check_health "$server" &
done < "$SERVER_LIST"
# 等待所有后台巡检任务完成
wait
echo "=== 2026年巡检任务全部完成 ==="
实战建议:在2026年的安全合规要求下,建议将明文密码替换为Vault动态密钥或SSH证书认证,以提升安全性。
二、 智能日志分析与飞书/钉钉告警脚本(Python)
随着业务逻辑的复杂化,日志中夹杂着大量无效信息。如何在海量日志中精准提取ERROR信息并实现秒级告警?Python凭借其强大的文本处理和生态库,是完成此类任务的最佳选择。
#!/usr/bin/env python3
# 2026年智能日志分析与告警脚本
import re
import time
import requests
from datetime import datetime
LOG_FILE = "/var/log/myapp/app.log"
WEBHOOK_URL = "https://open.feishu.cn/open-apis/bot/v2/hook/your-2026-webhook"
ERROR_PATTERN = re.compile(r'\[(ERROR|CRITICAL)\].*?Exception:\s*(.*)')
CHECK_INTERVAL = 5
def send_alert(error_msg):
"""发送飞书/钉钉机器人告警"""
payload = {
"msg_type": "interactive",
"card": {
"header": {
"title": {"tag": "plain_text", "content": "