pm2日志切割脚本

一个典型的日志切割脚本,废话不多说,直接上代码(大神勿骂emmmm)

#/bin/bash
#日志切割
#项目日志目录
file1=项目日志目录(绝对路径)
#日志备份目录
file=日志备份目录(绝对路径)
rootfile=/root/.pm2/
date= `date +%Y%m%d%H%M`
date1= `date +%Y%m%d --date '7days ago'`
cd $file
mkdir " $date "log
file2= " $file$date "log/
cd $file1
for i in `ls`
do
     if [ -f " $i " ];
     then
        mv $i $file2$i  
        touch $i
     fi
done
pm2 reloadLogs
#打包七天前的文件
cd $file
for a in `ls $file | grep $date1 `
do
     if [ -d $a ];
     then
         cd $a
#打包当前目录并删除原目录下文件
        /bin/tar -czf " $file$a ".log.gz *.log --remove-files
#删除原文件夹
        /bin/rm -rf $file$a
     fi
done
#删除三十天前的日志
cd $file
/bin/find $file -mtime +30 -name "*log*" -exec rm -rf {} \;
#另外每晚备份主目录下.pm2/*.log
cd $rootfile
for log in `ls | grep .log$`
do
     if [ -f " $log " ];
     then
        mv " $log " " $log .bak"
        touch " $log "
     fi
done
#分别打包.bak文件并删除源文件,然后移动到$file2/root目录下
mkdir " $file2 "root
for bak in `ls | grep .bak$`
do
     if [ -f " $bak " ];
     then
        /bin/tar -czf " $bak ".tar.gz $bak --remove-files
        mv $bak.tar.gz " $file2 "root/
     fi
done
#备份主目录下.pm2/log目录下文件
cd " $rootfile "logs
for i in `ls`
do
     if [ -f " $i " ];
     then
        mv $i " $file2 "root/
        touch $i
     fi
done
#刷新pm2
pm2 reloadLogs

file1 为日志目录 file2 为日志需要暂存的目录,这个脚本具体为:日志切割,保存七天,七天后的压缩保存到三十天,然后删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值