linux定时压缩脚本,linux定时压缩日志文件脚本

1. 遍历指定目录下全部文件夹下的logs目录,将2天前的日志按日志名称单独压缩 (5个文件5个压缩包,压缩率低。)

#!/bin/sh

baseFolder="/opt/test";

#查找days-1 天前的日志

days=3;

cd ${baseFolder};

for dir in $(ls $baseFolder)

do

echo "文件列表:${dir}"

if [ -d ${dir} ];then

echo "遍历是否存在需要压缩日志文件......"

if [ -d ${dir}/logs ];then

echo `pwd` " 目标路径:${dir}/logs";

for log in $(find ${dir}/logs -mtime +${days} -name "*.log")

do

tar -zcvf ${log}.tar.gz ${log};

if [ $? -eq 0 ];then

echo "日志文件压缩成功!删除原日志文件......"

rm -f ${log};

if [ $? -eq 0 ];then

echo "日志文件删除成功!"

else

echo "日志文件删除失败!"

fi

else

echo "日志文件压缩失败!"

fi

done

fi

else

echo "没有日志文件需要压缩......"

fi

done

2. 遍历指定目录下全部文件夹下的logs目录,将2天前的日志全部压缩到一个压缩文件(多个日志文件压缩到一个文件,提升压缩率)

#!/bin/sh

#日志查找路径

baseFolder="/opt/test";

LOG_TIME=`date "+%Y%m%d%H%M%S"`;

#查找days-1 天前的日志

days=3;

cd ${baseFolder};

for dir in $(ls $baseFolder)

do

echo "文件列表:${dir}"

if [ -d ${dir} ];then

echo "遍历是否存在需要压缩日志文件......"

if [ -d ${dir}/logs ];then

echo `pwd` " 目标路径:${dir}/logs";

n=`find ${dir}/logs -mtime +${days} -name "*.log" | wc -l`;

echo "待处理日志文件数:${n}";

if [ ${n} -gt 0 ];then

echo "压缩日志文件......";

tar -zcvf ${dir}/logs/${dir}${LOG_TIME}.tar.gz `find ${dir}/logs -mtime +${days} -name "*.log"`;

if [ $? -eq 0 ];then

echo "日志文件压缩成功!删除原日志文件......"

for log in $(find ${dir}/logs -mtime +${days} -name "*.log")

do

rm -f ${log};

if [ $? -eq 0 ];then

echo "日志文件删除成功!"

else

echo "日志文件删除失败!"

fi

done

else

echo "日志文件压缩失败!"

fi

else

echo "无日志需要处理!"

fi

else

echo "当前目录下无logs文件夹!"

fi

else

echo "非文件目录......"

fi

done

3.加入crontab定时任务管理

crontab -e

0 16 28 * * /bin/sh /opt/test/backlog.sh >/dev/null 2>&1

每月28日下午四点执行脚本。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值