### [雨云Shell自动化运维脚本:备份/监控/巡检一键化](https://www.jiyueip.com/article/7664) **Published:** 2026-07-21T15:51:10 **Author:** 斑斓助理 **Excerpt:** 手动运维雨云云服务器又累又容易漏。本文用 Shell 脚本实现自动备份、资源监控告警、日志巡检,配上 crontab 定时跑,把重复活儿交给机器。 在雨云云服务器上跑业务,备份、看资源、查日志这些活儿几乎天天有。手写命令费时间,忙起来还容易漏。把流程固化成 Shell 脚本,再交给 crontab 定时跑,运维压力小一大半。下面几个脚本都能直接抄去用。 ## 一、脚本放在哪、怎么管 建议统一放 `/opt/scripts/`,脚本加可执行权限 `chmod +x`,日志统一写到 `/var/log/ops/`。每个脚本开头写清楚用途和参数,方便半年后自己看。版本管理可以用 git 推一份到私有仓库。 ## 二、自动备份:数据库 + 网站目录 最该自动化的就是备份。下面是一个组合脚本: #!/bin/bash DATE=$(date +%F) BACKUP\_DIR=/backup/$DATE mkdir -p $BACKUP\_DIR # 数据库 mysqldump -u root -p"$DB\_PASS" --all-databases | gzip > $BACKUP\_DIR/db.sql.gz # 网站目录 tar czf $BACKUP\_DIR/www.tar.gz /var/www/html # 保留 7 天 find /backup -type d -mtime +7 -exec rm -rf {} ; 关键点:密码不要明文写死在脚本里,用环境变量或 `~/.my.cnf` 读;保留天数按磁盘算,别无限堆。 ## 三、资源监控:CPU/内存/磁盘超阈值告警 CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print 100-$8}') MEM=$(free | awk '/Mem/{printf "%.0f", $3/$2\*100}') DISK=$(df / | awk 'NR==2{print $5}' | tr -d '%') if \[ "$CPU" -gt 90 \] || \[ "$MEM" -gt 90 \] || \[ "$DISK" -gt 85 \]; then echo "告警 机器$(hostname) CPU:$CPU% MEM:$MEM% DISK:$DISK%" | mail -s "雨云服务器告警" admin@example.com fi 阈值按业务调。邮件告警需要服务器装好 mailutils 且能发信,也可以用 curl 推到企业微信/钉钉机器人,更及时。 ## 四、日志巡检:错误关键字抓取 grep -iE "error|timeout|exception" /var/log/nginx/error.log | tail -50 > /var/log/ops/err\_$(date +%F).txt if \[ -s /var/log/ops/err\_$(date +%F).txt \]; then cat /var/log/ops/err\_$(date +%F).txt | mail -s "今日错误日志" admin@example.com fi 每天把 Nginx/PHP 的错误日志里关键字抓出来汇总,不用自己翻。 ## 五、用 crontab 定时执行 编辑 `crontab -e`: 0 3 \* \* \* /opt/scripts/backup.sh >> /var/log/ops/backup.log 2>&1 \*/5 \* \* \* \* /opt/scripts/monitor.sh >> /var/log/ops/monitor.log 2>&1 0 1 \* \* \* /opt/scripts/logcheck.sh >> /var/log/ops/logcheck.log 2>&1 备份每天凌晨 3 点,监控每 5 分钟一次,日志巡检每天 1 点。日志重定向别漏,否则出问题没地方查。 ## 六、雨云上的注意事项 雨云云服务器新购用优惠码 **admin01** 走专属入口 [https://www.jiyueip.com/link/5617](https://www.jiyueip.com/link/5617) 能拿五折,多开几台做主备时成本可控。备份别只存在本机——本机盘坏了全完,建议同步到雨云对象存储(见本站 OSS 实战篇)或者另一台内网机器。同节点内网传备份免费,跨公网才计费。 ## 七、脚本健壮性几个习惯 - 开头加 `set -euo pipefail`,命令失败就停,避免连环错; - 路径用绝对路径,cron 环境没有你的 PATH; - 锁文件防止脚本重叠跑(`flock`); - 重要操作前先 dry-run 或打日志,别一上来就 rm -rf。 ## 常见问题 关于在雨云服务器上写运维脚本的高频疑问,下面一并解答。 **Tags:** 云服务器, 服务器运维, 网站运维, 雨云 **Categories:** 行业洞察 ---