前面15天,我们完成了Linux命令、权限、网络、服务、定时任务、Shell基础、判断、循环。
从今天开始,正式落地企业真实自动化脚本!
不会写脚本的运维是初级运维,会自动化脚本的才是专业运维。
Day16 一次性拿下生产环境三大刚需脚本:
✅ 自动日志清理脚本
✅ 自动数据备份脚本
✅ 服务器健康状态巡检脚本
全部可直接上线使用、配合crontab全自动运行。
一、今日学习目标
✅ 掌握企业标准脚本完整结构
✅ 学会时间戳、日志记录、目录判断规范写法
✅ 掌握自动清理过期日志原理
✅ 掌握打包备份 + 留存历史备份方案
✅ 掌握CPU/内存/磁盘全自动巡检告警
二、脚本通用标准规范(企业硬性要求)
1. 脚本首行必须: #!/bin/bash
2. 所有路径使用绝对路径
3. 执行前判断目录/文件是否存在
4. 所有操作输出日志记录
5. 定时任务脚本必须加容错判断
三、实战1:自动清理7天过期日志脚本(线上必用)
功能:自动扫描日志目录,删除7天前无用日志,防止磁盘爆满
bash
#!/bin/bash
# Day16 自动清理日志脚本
# 定义日志目录
LOG_DIR="/var/log"
# 定义脚本运行日志
RUN_LOG="/home/log_clear.log"
# 判断目录是否存在
if [ ! -d $LOG_DIR ];then
echo "目录不存在!" >> $RUN_LOG
exit 1
fi
# 删除7天前日志
echo "=====$(date +%Y-%m-%d %H:%M:%S) 开始清理日志====" >> $RUN_LOG
find $LOG_DIR -name "*.log" -mtime +7 -delete
echo "清理完成" >> $RUN_LOG
使用方法
1. 保存为 clear_log.sh
2. 授权 chmod +x clear_log.sh
3. 加入定时任务 每天凌晨1点自动执行
plaintext
0 1 * * * /home/clear_log.sh
四、实战2:自动打包备份脚本(网站/数据库通用)
功能:自动打包站点目录、自动命名时间戳、保留最近30天备份
bash
#!/bin/bash
# Day16 自动备份脚本
# 备份源目录
BAK_SRC="/home/www"
# 备份存放目录
BAK_DST="/home/backup"
# 时间戳
TIME=$(date +%Y%m%d)
# 创建备份目录
mkdir -p $BAK_DST
# 打包备份
tar -zcvf $BAK_DST/web_$TIME.tar.gz $BAK_SRC
# 删除30天前旧备份
find $BAK_DST -name "web_*.tar.gz" -mtime +30 -delete
echo "备份完成:web_$TIME.tar.gz"
企业优势
- 文件名带日期,不会覆盖
- 自动清理旧备份,不占磁盘
- 可用于网站、配置、数据库目录备份
五、实战3:服务器健康巡检脚本(运维必备)
自动检测:磁盘使用率、内存剩余、系统负载,异常输出日志
bash
#!/bin/bash
# Day16 服务器健康巡检脚本
LOG_FILE="/home/check_server.log"
echo "=====服务器巡检时间:$(date +%Y-%m-%d %H:%M:%S)====" > $LOG_FILE
# 1. 查看磁盘使用率
echo "【磁盘使用情况】" >> $LOG_FILE
df -h >> $LOG_FILE
# 2. 查看内存情况
echo -e "\n【内存使用情况】" >> $LOG_FILE
free -h >> $LOG_FILE
# 3. 查看系统负载
echo -e "\n【系统负载】" >> $LOG_FILE
uptime >> $LOG_FILE
# 4. 查看Top5高占用进程
echo -e "\n【资源占用最高进程】" >> $LOG_FILE
ps -ef --sort=-%cpu | head -6 >> $LOG_FILE
六、脚本 + Crontab 全自动运维方案(生产标配)
1. 凌晨1点:清理过期日志
2. 凌晨2点:打包网站数据备份
3. 每6小时:服务器健康巡检
plaintext
0 1 * * * /home/clear_log.sh
0 2 * * * /home/bak_web.sh
0 */6 * * * /home/check_server.sh
七、新手脚本排错总结
1. 定时任务不执行:缺少绝对路径、未授权、无环境变量
2. 打包为空:源目录路径错误
3. 清理日志误删:先执行find预览,再加-delete
4. Windows编辑脚本:存在换行符报错,用 dos2unix 修复
八、今日实操作业
1. 新建三个脚本文件
2. 全部授权运行一次
3. 添加到crontab定时任务
4. 查看生成的日志文件
九、今日总结
1. 日志清理脚本:解决磁盘爆满问题
2. 定时备份脚本:保障业务数据安全
3. 服务器巡检脚本:快速掌握服务器健康状态
4. 脚本+定时任务=企业自动化运维标准
5. 从今天起,你的Linux能力已经达到初级运维上岗标准
遇到问题欢迎评论区留言探讨,关注账号,持续输出运维干货。