6个高频实用技术脚本案例,覆盖运维与办公自动化(可直接复用)

在日常开发、运维、办公工作中,大量重复操作会耗费超多时间,手动操作不仅效率低,还容易出现人为失误。脚本作为轻量化自动化工具,无需复杂工程部署,几行代码就能实现批量处理、自动巡检、数据统计等功能,是技术人提效的核心利器。

本文精选Python、Shell两大主流脚本语言的6个高频实战案例,覆盖服务器运维、日志分析、文件批量处理、办公自动化等核心场景,所有代码完整可运行、适配新手,开箱即用,帮助大家用脚本替代90%重复工作。

一、Shell 脚本运维实战案例(Linux 必备)

Shell 脚本是 Linux 运维的基础工具,适配服务器日常巡检、文件批量操作、服务监控等场景,轻量化、无依赖、运行高效,是后端、运维工程师的必备技能。

案例1:服务器一键资源巡检脚本

适用场景 :日常服务器健康巡检、卡顿排查、定时监控,一键查看CPU、内存、磁盘、负载核心指标,替代多条手动命令查询。 脚本功能:自动获取服务器主机信息、系统版本、CPU使用率、内存占用、磁盘空间、系统负载,生成标准化巡检报告。

bash 复制代码
#!/bin/bash
# server_check.sh 服务器资源巡检脚本
echo "==================== 服务器巡检报告 ===================="
echo "检查时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "主机名: $(hostname)"
echo "系统版本: $(cat /etc/redhat-release 2>/dev/null || lsb_release -a 2>/dev/null | grep Description | cut -d: -f2 | sed 's/^ //')"
echo ""

# CPU使用率查询
echo "【CPU状态】"
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print 100-$8}')
echo "CPU当前使用率: ${CPU_USAGE}%"
echo "系统负载: $(uptime | awk -F'load average:' '{print $2}')"
echo ""

# 内存使用率查询
echo "【内存状态】"
free -h | awk '/Mem/{printf "总内存: %s  已用: %s  剩余: %s  使用率: %.2f%%\n",$2,$3,$4,$3/$2*100}'
echo ""

# 磁盘使用率查询
echo "【磁盘状态】"
df -h | grep -v tmpfs | awk '{print $1,"总容量:"$2,"已用:"$3,"剩余:"$4,"使用率:"$5}'
echo "========================================================"

使用方法

  1. 保存为 server_check.sh
  2. 授权:chmod +x server_check.sh
  3. 运行:./server_check.sh
  4. 可配置 crontab 定时每日自动巡检。

案例2:批量创建/重命名文件脚本

适用场景 :项目初始化批量建目录、批量修改文件后缀、统一规范文件命名,告别手动逐个操作。 脚本功能:批量生成有序文件夹、批量修改当前目录下所有文件后缀(如.txt改.log)。

bash 复制代码
#!/bin/bash
# file_batch.sh 文件批量处理脚本

# 1. 批量创建10个有序目录 dir1-dir10
echo "开始批量创建目录..."
for i in {1..10}
do
mkdir -p dir$i
echo "创建成功:dir$i"
done

# 2. 批量将所有txt文件改为log文件
echo "开始批量修改文件后缀..."
rename 's/\.txt/\.log/' *.txt 2>/dev/null
echo "文件后缀批量修改完成"

使用方法:授权运行即可,可根据需求修改循环数量、文件后缀规则。

案例3:Nginx 异常IP自动屏蔽脚本

适用场景 :防护服务器CC、DOS攻击,自动监控Nginx日志,拦截高频异常访问IP,保障服务稳定。 脚本功能:统计短时间内高频访问IP,自动通过防火墙屏蔽恶意IP,避免恶意请求占用服务器资源。

bash 复制代码
#!/bin/bash
# ban_ip.sh 异常IP自动屏蔽脚本
LOG_FILE="/var/log/nginx/access.log"
# 设定访问阈值,1分钟超过100次判定为异常
LIMIT=100
TIME=$(date -d '1 minute ago' +'%d/%b/%Y:%H:%M')

# 筛选1分钟内高频访问IP
awk -v time="$TIME" '$4>time {print $1}' $LOG_FILE | sort | uniq -c | awk -v limit="$LIMIT" '$1>limit {print $2}' > /tmp/ban_ip.txt

# 屏蔽异常IP
for ip in $(cat /tmp/ban_ip.txt)
do
# 避免重复屏蔽
iptables -L | grep $ip || iptables -A INPUT -s $ip -j DROP
echo "已屏蔽恶意攻击IP:$ip"
done

使用方法:适配CentOS系统,配置定时任务每分钟执行一次,实现实时防护。

二、Python 脚本自动化实战案例(通用全能)

Python 脚本语法简洁、库生态丰富,不仅适配服务器运维,还能实现办公自动化、数据处理、本地工具开发,是全场景提效神器,新手上手门槛极低。

案例4:Python 服务器资源监控脚本

适用场景 :跨平台服务器监控、本地电脑资源查看,支持Windows/Linux,可拓展邮件、企业微信告警。 依赖安装pip install psutil

python 复制代码
import psutil
import time

def get_server_status():
    print("==================== Python服务器监控 ====================")
    print(f"采集时间: {time.strftime('%Y-%m-%d %H:%M:%S')}")
    # CPU
    cpu_percent = psutil.cpu_percent(interval=1)
    print(f"CPU使用率:{cpu_percent}%")
    # 内存
    mem = psutil.virtual_memory()
    print(f"内存总容量:{mem.total/1024/1024/1024:.2f}G,已用:{mem.used/1024/1024/1024:.2f}G,使用率:{mem.percent}%")
    # 磁盘
    disk = psutil.disk_usage('/')
    print(f"磁盘总容量:{disk.total/1024/1024/1024:.2f}G,已用:{disk.used/1024/1024/1024:.2f}G,使用率:{disk.percent}%")
    print("==========================================================")
    # 告警判断
    if cpu_percent > 80 or mem.percent > 85 or disk.percent > 90:
        print("⚠️ 资源告警:服务器资源占用过高!")

if __name__ == "__main__":
    get_server_status()

使用方法:直接运行脚本;可增加循环定时采集,对接Webhook推送告警消息。

案例5:批量读取Excel并汇总数据脚本

适用场景 :多Excel报表合并、数据汇总统计,财务、运营、测试常用,不用手动复制粘贴。 依赖安装pip install pandas openpyxl

python 复制代码
import pandas as pd
import os

def merge_excel(folder_path):
    all_data = []
    # 遍历文件夹下所有xlsx文件
    for file in os.listdir(folder_path):
        if file.endswith(".xlsx") and not file.startswith("~"):
            file_full = os.path.join(folder_path, file)
            df = pd.read_excel(file_full)
            all_data.append(df)
    # 合并全部表格
    result = pd.concat(all_data, ignore_index=True)
    result.to_excel("汇总结果.xlsx", index=False)
    print(f"合并完成!一共合并 {len(all_data)} 个文件,输出:汇总结果.xlsx")

if __name__ == "__main__":
    # 修改为你的Excel文件夹路径
    merge_excel("./excel_data")

使用方法 :将所有待合并Excel放入excel_data文件夹,运行脚本自动生成汇总表。

案例6:日志关键词检索脚本

适用场景:排查线上故障,批量扫描日志文件,快速筛选报错关键词,提取异常行并保存结果。

python 复制代码
def search_log(log_path, keyword):
    result_lines = []
    with open(log_path, "r", encoding="utf-8", errors="ignore") as f:
        for line_num, line in enumerate(f, start=1):
            if keyword in line:
                result_lines.append(f"行号{line_num}: {line.strip()}")
    # 写入结果文件
    with open("log_search_result.txt", "w", encoding="utf-8") as out:
        out.write("\n".join(result_lines))
    print(f"检索完成,找到 {len(result_lines)} 条匹配记录,已保存至 log_search_result.txt")

if __name__ == "__main__":
    # 修改日志文件路径和要搜索的关键词
    search_log("./app.log", "ERROR")

使用方法:修改日志路径与检索关键词,常用于快速定位程序报错。

三、脚本使用注意事项

  1. 权限管控:服务器脚本尽量最小权限运行,屏蔽IP、修改系统配置类脚本务必做好测试,避免误操作。
  2. 定时任务:Shell crontab、Python定时脚本,做好日志输出,方便排查脚本执行异常。
  3. 兼容性:Shell脚本在CentOS、Ubuntu之间存在少量命令差异,上线前先在测试环境验证;Python注意版本和第三方库依赖。
  4. 备份优先:涉及批量修改文件的脚本,执行前先备份原始数据,防止数据丢失。

四、总结

脚本自动化是技术人员的核心提效手段,Shell擅长Linux服务器运维场景,Python优势在于跨平台、数据处理与办公自动化。上面这些脚本覆盖了绝大多数日常工作场景,大家可以基于基础代码按需修改逻辑,扩展告警、邮件推送、数据持久化等能力,把重复的人工工作交给程序自动完成。

相关推荐
爱吃红星柚1 小时前
【学习】Elpis 抽离与发布 npm 包
前端·前端框架·node.js
PedroQue992 小时前
0.5.0重磅发布:动画插件+H5体验全面优化
前端·uni-app
金虹桥程序员2 小时前
【动画】 📚 CSS 动画与 GPU 合成层优化全链路指南
前端·面试
程序员老赵2 小时前
Docker 部署填鸭表单完整教程:搭建私有化问卷与表单收集平台
前端·docker·开源
无限压榨切图仔2 小时前
向量库能搜到内容,为什么还不算学会 RAG
前端·agent
mmsx2 小时前
MapLibre 实战 11|用户说"我的地块丢了":一个 sealed class 图层模型,和四个让我重构三版的坑
android·前端·开源
xqchen2 小时前
代码差异可视化方案选型:diff2html 实战指南
前端
名字还没想好☜2 小时前
用 Zustand 做 React 全局状态管理:告别 Context 重渲染,3 个实战模式与持久化
前端
IMPYLH2 小时前
HTML 的 <section> 元素
前端·html