前言:
很多时候日志文件很大,需要一个自动清理或者压缩的执行脚本!
使用命令df -h可以查看磁盘使用情况:

然后使用du -sh * 可以查看所有文件或者文件夹的大小。
一、首先是shell脚本:
#!/bin/bash
# filename:delete-log.sh
# crontab 每天2点定时删除指定日期的日志,压缩指定日期的日志
# crontab: 0 2 * * * sh /data/logs/zip-delete-log.sh >> /dev/null 2>&1
# 如今天是2020-09-11,删除10天前数据,就是删除2020-09-01的数据
# 压缩3天前数据,就是删除2020-09-08的数据
#1.delete log
deleteday=`date -d '-10 day' +%Y-%m-%d`;
cd /data/logs/
rm -rf *${deleteday}*
echo "rm -rf *${deleteday}*"
#2.zip log
yesterday=`date -d '-3 day' +%Y-%m-%d`;
for file in $(ls *${yesterday}*)
do
zip -rym ${file}.zip ${file}
echo "zip -rym ${file}.zip ${file}"
done
二、然后是脚本的执行:
1.可以放在任意目录,但放在/data/logs目录下更方便
2.放到目录之后,chmod 755 zip-delete-log.sh
3.检查有没有zip和unzip命令,没有则安装:yum install zip unzip
4.创建linux定时任务crontab:
查看定时任务:crontab -l
创建定时任务:crontab -e
# crontab 每天2点定时删除指定日期和压缩指定日期的数据
0 2 * * * sh /data/logs/zip-delete-log.sh >> /dev/null 2>&1
5.重载定时配置:service crond reload
或 重启定时服务:service crond restart
本文介绍了一种使用Shell脚本来自动清理和压缩日志文件的方法,通过设置crontab定时任务,实现定期删除旧日志并压缩指定日期的日志,以节省磁盘空间。
465

被折叠的 条评论
为什么被折叠?



