10个必学Shell脚本,运维效率翻倍

📅 2026/7/1 17:52:29
10个必学Shell脚本,运维效率翻倍
Shell十个经典实用脚本代码案例合集Shell脚本是Linux运维自动化的基础工具语法简单、无需编译能快速完成文件处理、系统监控、批量运维等工作。本文整理10个行业高频经典Shell脚本全部附带可直接运行的完整代码适合新手练习与线上环境使用。1. 批量创建文件夹脚本项目初始化时常需要批量生成有序目录循环语句快速完成批量创建。#!/bin/bashforiin{1..10}domkdir-pdir$idoneecho批量文件夹创建完毕2. 批量重命名文件脚本统一修改文件后缀无需手动逐个改名适合日志、文档批量规整。#!/bin/bashforfilein*.txtdomv$file${file%.txt}.bakdoneecho文件后缀批量修改完成3. 内存使用率监控脚本自动计算内存占用比例超过阈值输出警告可配合定时任务巡检服务器资源。#!/bin/bashMEM$(free|awk/Mem/{printf %.0f, $3/$2*100})echo当前内存使用率${MEM}%if[$MEM-gt80];thenecho警告内存资源占用过高fi4. 自动清理过期日志脚本定时删除多天前老旧日志释放磁盘存储空间避免日志堆积。#!/bin/bashfind/var/log-name*.log-mtime3-deleteecho3天前过期日志清理完成5. 网段主机存活检测脚本批量ping扫描局域网主机快速筛选在线设备简化网络巡检工作。#!/bin/bashforiin{1..20}doping-c1-W1192.168.1.$i/dev/null21[$?-eq0]echo192.168.1.$i主机在线done6. 统计脚本代码总行数统计当前目录所有shell文件代码量用于项目代码规模统计。#!/bin/bashtotal0forfilein*.shdoline$(wc-l$file)total$((totalline))echo$file行数$linedoneecho全部脚本总行数$total7. 带时间戳数据备份脚本打包业务目录并添加时间标记防止备份文件覆盖保障数据可回溯。#!/bin/bashtime$(date%Y%m%d_%H%M%S)tar-zcfdata_$time.tar.gz /home/data/dev/null21echo备份完成文件data_$time.tar.gz8. 进程自动监控重启脚本持续监测Nginx等核心服务进程崩溃后自动重启保障业务不间断运行。#!/bin/bashpid$(pgrep nginx)if[-z$pid];thensystemctl start nginxechoNginx异常已自动重启服务fi9. 批量替换文本内容脚本一键批量修改目录内文件指定字符适用于批量更新配置文件。#!/bin/bashsed-is/old_text/new_text/g*.txtecho文本内容批量替换成功10. 磁盘空间告警脚本实时读取根分区磁盘占用空间不足时输出预警防止磁盘打满服务宕机。#!/bin/bashdisk$(df/|awkNR2{print $5}|cut-d%-f1)echo磁盘使用率${disk}%if[$disk-gt90];thenecho警告磁盘空间即将耗尽请及时清理fi文档小结这10个Shell脚本覆盖运维日常绝大多数自动化场景代码简短易懂上手门槛低。脚本可直接复制使用也能根据业务场景调整参数搭配crontab定时任务可实现服务器无人值守维护大幅降低人工运维工作量。海量精选技术文档和实战案例持续更新敬请关注【风骏时光少年】