运维日常工作标准化流程总结:从零搭建可落地的巡检与备份体系

为什么你的日常工作需要标准化流程

很多新手运维每天靠手动执行命令检查服务器,今天漏了磁盘就明天补,忘记备份就等出问题再后悔。
真正的运维日常工作标准化流程总结,核心是把重复操作变成可复用的脚本、计划任务和检查清单。
这样无论谁值班,执行同一套流程都能得到一致结果,也能用自动告警代替人工盯屏。

落地前需要准备的工具和环境

  • SSH 客户端:推荐 Termius 或 Xshell,所有操作都通过 SSH 远程执行。
  • 一台 Linux 服务器(以 CentOS 7/8、Ubuntu 20.04 为例),确保你能使用 root 或 sudo 权限。
  • 文本编辑器:vim 或 nano。
  • 邮件发送能力(可选):用于告警通知,可使用 mailx 或配置 SMTP。

确认环境已安装基本工具:

# CentOS
sudo yum install -y cronie mailx curl

# Ubuntu/Debian
sudo apt install -y cron mailutils curl

标准化流程第一步:每日系统巡检脚本

编写一个 /usr/local/bin/daily_check.sh,自动收集 CPU、内存、磁盘、进程数、最近登录记录。

#!/bin/bash
# 运维标准化巡检脚本
echo "===== 系统巡检报告: $(date) ====="
echo ""
echo "# 磁盘使用率"
df -h | awk '$NF=="/"{print $5}'
echo ""
echo "# 内存使用"
free -h | grep Mem
echo ""
echo "# CPU 负载(1min/5min/15min)"
uptime | awk -F'load average:' '{print $2}'
echo ""
echo "# 最近5次登录"
last -5 2>/dev/null || echo "无记录"
echo ""
echo "# 正在监听端口"
ss -tlnp 2>/dev/null || netstat -tlnp
echo ""
echo "# 系统更新数量(CentOS)"
sudo yum check-update --quiet 2>/dev/null | wc -l

赋予执行权限并加入 crontab:

chmod +x /usr/local/bin/daily_check.sh
# 每天 8:00 执行,结果追加到日志
crontab -e
0 8 * * * /usr/local/bin/daily_check.sh >> /var/log/daily_check.log 2>&1

第二步:自动化日志审查与告警

单看日志太耗时,可以用 fail2ban 自动屏蔽暴力破解,再用 logwatch 生成摘要。

sudo yum install -y fail2ban logwatch
sudo systemctl enable fail2ban --now

配置 fail2ban 保护 SSH:

# /etc/fail2ban/jail.local
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s

每天自动邮件发送日志摘要:

# 添加到 crontab
0 9 * * * /usr/sbin/logwatch --output mail --mailto admin@example.com --detail high --service All

第三步:定期备份与恢复验证

备份是运维的底线。
写一个网站数据库备份脚本 /usr/local/bin/backup.sh

#!/bin/bash
BACKUP_DIR="/backup/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR

# 备份 MySQL 数据库(示例)
mysqldump -u root -p'yourpassword' --all-databases | gzip > $BACKUP_DIR/db_all.sql.gz

# 备份网站目录
zip -r $BACKUP_DIR/www.zip /var/www/html

# 保留最近7天,删除更早的
find /backup -type d -mtime +7 -exec rm -rf {} \;

每天凌晨执行并测试恢复可行性:

0 2 * * * /usr/local/bin/backup.sh
# 每月1号自动恢复测试(仅还原到一个测试库)
0 3 1 * * /usr/local/bin/test_restore.sh

test_restore.sh 示例:

# 创建临时库
mysql -u root -p'pass' -e "CREATE DATABASE IF NOT EXISTS test_restore;"
# 恢复最近备份
gunzip < /backup/$(date +%Y%m01)/db_all.sql.gz | mysql -u root -p'pass' test_restore
# 检查是否有表
echo "恢复成功,表数量:"
mysql -u root -p'pass' -e "use test_restore; show tables;" | wc -l

第四步:安全更新与补丁管理

自动安装安全更新并重启服务(小心动态内核模块):

sudo yum update --security -y  # 仅安全更新
sudo reboot  # 如果需要重启,尽量在非业务时段

加入计划任务每周一次:

0 4 * * 0 sudo yum update --security -y >> /var/log/security_update.log 2>&1

避坑指南:新手最容易踩的几个深坑

  • 脚本路径写死:不同环境权限不同,建议用 $HOME$(dirname $0)
  • crontab 环境变量:cron 执行时不会加载 ~/.bashrc,建议在脚本内部 source /etc/profile 再执行复杂命令。
  • 备份不验证:文件存在不等于可用,一定要定期尝试恢复。
  • 忘记关注日志增长/var/log 可能占满磁盘,可配置 logrotate 自动轮转。

如何验证流程是否跑通

  1. 查看 crontab 是否生效:crontab -l 并确认服务运行 systemctl status crond
  2. 手动执行巡检脚本:bash /usr/local/bin/daily_check.sh,观察输出是否正常。
  3. 检查日志文件:cat /var/log/daily_check.log,看是否有内容。
  4. 测试备份恢复:手动跑一次 test_restore.sh,确认能成功还原。
  5. 模拟告警:故意输错几次 SSH 密码,查看 fail2ban 是否封锁 IP。

高频问题解答

Q:每天的巡检报告能直接发到微信或钉钉吗?
A:可以。通过 webhook 配合 curl 发送,例如钉钉机器人:curl -X POST -H "Content-Type: application/json" -d '{"msgtype":"text","text":{"content":"巡检报告详情"}}' https://oapi.dingtalk.com/robot/send?access_token=xxx

Q:备份脚本报错 mysqldump not found 怎么办?
A:确认 MySQL 客户端已安装,或使用 which mysqldump 检查路径,在脚本开头加 export PATH=$PATH:/usr/local/mysql/bin

Q:如何确保标准化流程不会被人为跳过?
A:引入版本控制,把脚本放进 Git 仓库,每次修改都记录。同时加一个全网 ping 监控,如果长时间未收到巡检报告就告警。

如果你正在处理运维日常工作标准化流程总结,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
标准化不是一次性工作,需要持续优化,但迈出第一步后你会发现运维效率显著提升。

分享到:
上一篇
服务器安全巡检每日流程清单:新手运维实操指南
下一篇
大模型推理服务器散热优化:从监控到改造的完整操作指南
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意