linux定时删除或者压缩日志文件

本文介绍了一种使用Shell脚本来自动清理和压缩日志文件的方法,通过设置crontab定时任务,实现定期删除旧日志并压缩指定日期的日志,以节省磁盘空间。

前言:

很多时候日志文件很大,需要一个自动清理或者压缩的执行脚本!

使用命令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
    

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值