首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Shell脚本十大经典实用运维自动化完整实战代码案例

Shell脚本十大经典实用运维自动化完整实战代码案例

作者头像
风骏时光少年
发布2026-06-29 12:09:18
发布2026-06-29 12:09:18
870
举报

Shell脚本十大经典实用运维自动化完整实战代码案例

一、文档简介

Shell脚本是Linux运维核心工具,依托bash可实现服务器巡检、日志清理、文件备份、进程监控、批量操作等自动化工作。本文整理10个高频运维场景Shell案例,代码可直接部署使用,适配CentOS、Ubuntu主流Linux发行版,无第三方依赖,兼顾可读性与稳定性。

二、前置环境要求

  1. 1. 系统Shell:bash 4.0及以上
  2. 2. 权限:部分脚本需root执行
  3. 3. 基础工具:awk、sed、grep、crontab

三、十大经典Shell案例完整代码演示

案例1:系统硬件与资源一键巡检

代码语言:javascript
复制
#!/bin/bash
echo "====服务器资源巡检报告===="
echo "主机名:$(hostname)"
echo "系统版本:$(cat /etc/redhat-release 2>/dev/null || lsb_release -a)"
echo "CPU负载:$(uptime | awk -F'load average:' '{print $2}')"
echo "内存使用:$(free -h)"
echo "磁盘挂载:$(df -h)"
echo "运行时长:$(uptime -p)"

案例2:定时清理过期日志文件

代码语言:javascript
复制
#!/bin/bash
LOG_PATH="/var/log/nginx"
# 删除7天前日志
find $LOG_PATH -name "*.log" -mtime +7 -delete
echo "已清理7天以上日志文件"

案例3:数据库全量备份脚本

代码语言:javascript
复制
#!/bin/bash
BACKUP_DIR="/data/mysql_backup"
DB_NAME="test_db"
TIME=$(date +%Y%m%d)
mysqldump -uroot -p123456 $DB_NAME > $BACKUP_DIR/${DB_NAME}_$TIME.sql

案例4:监控进程异常自动重启

代码语言:javascript
复制
#!/bin/bash
PROCESS="nginx"
if ! pgrep $PROCESS > /dev/null;then
    systemctl start $PROCESS
    echo "$PROCESS进程已异常重启"
fi

案例5:批量ping检测主机存活

代码语言:javascript
复制
#!/bin/bash
for ip in 192.168.1.{1..20};do
    ping -c1 -W1 $ip > /dev/null
    [ $? -eq 0 ] && echo "$ip 在线"
done

案例6:批量修改文件后缀

代码语言:javascript
复制
#!/bin/bash
for file in *.txt;do
    mv "$file" "${file%.txt}.md"
done

案例7:统计日志访问IP访问次数

代码语言:javascript
复制
#!/bin/bash
awk '{print $1}' access.log | sort | uniq -c | sort -nr

案例8:自动压缩打包归档目录

代码语言:javascript
复制
#!/bin/bash
TIME=$(date +%Y%m%d)
tar -zcvf data_$TIME.tar.gz /home/data

案例9:监控磁盘使用率告警

代码语言:javascript
复制
#!/bin/bash
WARN_THRESHOLD=85
df -h | grep -v tmpfs | awk 'NR>1{gsub(/%/,"",$5);if($5>'$WARN_THRESHOLD')print $1,$5"%磁盘占用过高"}'

案例10:批量远程执行命令

代码语言:javascript
复制
#!/bin/bash
HOSTS=("192.168.1.10" "192.168.1.11")
for host in ${HOSTS[@]};do
    ssh root@$host "hostname;free -h"
done

四、通用使用规范

  1. 1. 脚本赋予执行权限:chmod +x demo.sh
  2. 2. 定时执行配置:crontab -e 添加定时规则
  3. 3. 生产环境建议增加日志输出、错误捕获set -euo pipefail
  4. 4. 涉及密码、数据库账号不要明文写入,改用环境变量传入

五、场景适配说明

  1. 1. 服务器日常巡检、磁盘空间预警;
  2. 2. 网站日志自动清理、数据定时备份;
  3. 3. 业务进程保活、故障自动恢复;
  4. 4. 内网批量主机运维、日志流量统计分析。 全部脚本轻量化,无需安装额外组件,中小型运维团队可直接落地,减少重复人工操作。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 风骏时光少年 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Shell脚本十大经典实用运维自动化完整实战代码案例
    • 一、文档简介
    • 二、前置环境要求
    • 三、十大经典Shell案例完整代码演示
      • 案例1:系统硬件与资源一键巡检
      • 案例2:定时清理过期日志文件
      • 案例3:数据库全量备份脚本
      • 案例4:监控进程异常自动重启
      • 案例5:批量ping检测主机存活
      • 案例6:批量修改文件后缀
      • 案例7:统计日志访问IP访问次数
      • 案例8:自动压缩打包归档目录
      • 案例9:监控磁盘使用率告警
      • 案例10:批量远程执行命令
    • 四、通用使用规范
    • 五、场景适配说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档