零基础入门:服务器自动化运维脚本合集编写与使用指南

为什么你需要一份自动化运维脚本合集

日常维护服务器时,我们经常重复执行相同操作:清理日志、备份数据库、检查磁盘、更新系统等。
把这些任务写成脚本并收集成一个服务器自动化运维脚本合集,能大幅减少重复劳动,还能避免手动输错命令。
即使是刚接触运维的新手,也可以直接复用社区或自己总结的脚本合集,快速提升效率。

准备工作:环境与基础认知

在动手编写脚本合集之前,你需要一台 Linux 服务器(CentOS 7+ 或 Ubuntu 20.04+ 都行)和一个具备 sudo 权限的普通用户。
如果你用的是宝塔面板,也可以通过面板的“计划任务”功能定时执行脚本,但本文以命令行环境为主,更适合后续灵活扩展。

另外,建议先了解几个基础概念:

  • Shell 脚本:以 .sh 结尾的文本文件,里面写的是 Linux 命令的集合。
  • 执行权限:脚本需要 chmod +x 才能运行。
  • 脚本存放目录:推荐统一放在 /usr/local/bin/scripts/ 或者家目录下的 ~/scripts/,方便管理。
# 创建脚本存放目录(示例)
mkdir -p ~/scripts
cd ~/scripts

核心操作:从零编写你的第一份脚本合集

1. 编写一个系统健康检查脚本

先写一个最简单的脚本,用来检查 CPU、内存、磁盘使用率。
将以下内容保存为 check_health.sh

#!/bin/bash
echo "===== 系统健康检查 $(date) ====="
echo "CPU 负载:$(uptime | awk -F'load average:' '{print $2}')"
echo "内存使用:$(free -h | grep Mem | awk '{print $3 "/" $2}')"
echo "磁盘使用:$(df -h / | awk 'NR==2{print $3 "/" $2}')"

赋予执行权限并试运行:

chmod +x check_health.sh
./check_health.sh

2. 编写定时清理日志脚本

日常运维中日志文件撑爆磁盘是常见问题。
写一个 clean_logs.sh,保留最近 7 天的日志:

#!/bin/bash
LOG_DIR="/var/log"
find "$LOG_DIR" -type f -name "*.log" -mtime +7 -exec rm -f {} \;
echo "已清理 $LOG_DIR 中 7 天前的 .log 文件"

给脚本加权限后,可以手动测试一次。

3. 创建脚本索引文件

为了形成真正的脚本合集,建议建一个索引文件 index.txt 记录每个脚本的用途和路径,这样后续查找更方便。

# ~/scripts/index.txt
check_health.sh        - 系统健康检查(CPU/内存/磁盘)
clean_logs.sh          - 清理7天前的旧日志
backup_db.sh           - 备份MySQL数据库(后续编写)
update_system.sh       - 自动更新系统包

4. 将脚本合集加入 PATH

为了方便在任何目录下直接运行脚本,可以将脚本目录加入环境变量:

echo 'export PATH=$PATH:~/scripts' >> ~/.bashrc
source ~/.bashrc

这样你在任意位置输入 check_health.sh 就能执行。

避坑指南:新手最常见的四个错误

错误1:忘记给脚本加执行权限

运行 ./xxx.sh 时报 Permission denied
解决:chmod +x xxx.sh

错误2:脚本中使用了绝对路径,但切换目录后失效

如果脚本中用 cd /some/path,建议在脚本开头添加 cd $(dirname $0) 来切换到脚本所在目录。

错误3:crontab 中执行脚本遇到环境变量问题

在计划任务里运行脚本时,可能找不到 findmysql 等命令。
解决办法:在脚本开头使用完整路径(如 /usr/bin/find),或者先 source /etc/profile 加载环境变量。

错误4:盲删日志文件导致进程仍占用磁盘空间

使用 rm -f 删除日志后,如果文件仍被进程打开(比如 nginx 日志),磁盘空间并不会立即释放。
正确做法是使用 truncate -s 0 文件名 清空内容,或重启对应服务。

效果验证:让脚本合集真正跑起来

  1. 手动验证单个脚本:运行 ./check_health.sh,检查输出是否正常。
  2. 验证 PATH 集成:在任意目录执行 check_health.sh,看是否直接生效。
  3. 使用 crontab 实现定时执行(以清理日志为例):
crontab -e
# 每天凌晨 3 点执行清理
0 3 * * * /home/youruser/scripts/clean_logs.sh >> /var/log/scripts.log 2>&1

保存后等待时间到达或手动测试:

# 手动模拟执行
bash /home/youruser/scripts/clean_logs.sh
  1. 查看日志确认:cat /var/log/scripts.log 看是否有错误输出。

当所有脚本都能稳定输出预期结果时,你的服务器自动化运维脚本合集就初步成型了。
后续可以不断扩充备份、安全扫描、自动部署等脚本,逐步形成个人运维工具箱。
如果你在操作中遇到报错,优先检查脚本中的路径、命令是否存在以及权限设置。

分享到:
上一篇
新手搭建服务器完整操作流程:新手搭建服务器的完整操作流程
下一篇
服务器日志深度分析排查问题:零基础入门到实战
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意