当前位置:首页>Linux>Linux30天入门计划|Day16:综合脚本实战!自动备份、清日志、服务器巡检

Linux30天入门计划|Day16:综合脚本实战!自动备份、清日志、服务器巡检

  • 2026-10-11 06:14:20
Linux30天入门计划|Day16:综合脚本实战!自动备份、清日志、服务器巡检

前面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能力已经达到初级运维上岗标准

遇到问题欢迎评论区留言探讨,关注账号,持续输出运维干货。

最新文章

随机文章