14. 日志归档

在Linux系统中有日志切割的工具logrotate ,它可以按照我们的要求按时间或者按大小来切割和归档老的日志,它还可以压缩切割后的日志,也可以定义老日志保留的时间。本案例的需求是通过一个shell脚本来实现类似logrotate的功能。

具体要求如下:

1)要处理的日志路径是 /data/logs/1.log ;

2)每天0点0分切割日志;

3)老日志保留一周;

4)归档后的日志名字为 1.log.1 ,1.log.2 ,... ,1.log.7 ;

5)假设日志归档后,新日志可以自动生成。

参考脚本如下:

#!/bin/bash
#日志切割归档

logdir=/data/logs/

#如果文件存在则删除
e_df()
{
    if [ -f $1 ]
    then
        rm -rf $1
    fi
}

cd $logdir

#从7到2,依次遍历循环
for i in `seq 7 -1 2`
do
    i2=$[$i-1]
    
    e_df 1.log.$i
    
    if [ -f 1.log.$i2 ]
    then
        mv 1.log.$i2 1.log.$i
    fi
done

e_df 1.log.1
mv 1.log 1.log.1

添加计划任务:

0 0 * * * /bin/bash /usr/sbin/log_file.sh           #每天0点0分执行任务

此外,还可以按照日志大小来归档,使用 du -sm 命令,对超过指定大小的日志进行归档处理。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值