linux日志清理脚本

日常日志清理脚本:

1.压缩文件

SUFFIX=$(date -d yesterday +%Y-%m-%d)
CURRENT=$(date '+%s')
echo $CURRENT
#压缩
FILES=(/data/logs/shop/nohup)
for file in "${FILES[@]}";do
   echo $file
   FILENAME="$file.$SUFFIX.$CURRENT.gz"
   echo $FILENAME
   gzip -c $file > $FILENAME
   echo -n > $file
   
done
echo 'compress end'

有些文件是一直在滚,所以需要定时压缩,节省磁盘空间。一般是配合linux定时crontab,将文件切割成以日期为结尾文件,如/data/logs/shop/nohup 文件,

最终会切割成nohup.2023-08-21.1692669216.gz,每天压缩一个。

2.清理N天前的日志文件

mtime=14
LOG_DIRS=(/data/logs/shop)
for log_dir in "${LOG_DIRS[@]}";do
find $log_dir  -mtime +$mtime -name "*.log" -exec rm -rf {} \;
find $log_dir  -mtime +$mtime -name "*.gz" -exec rm -rf {} \;
done
echo 'delete log end'

找到14天前的以.log,.gz结尾的日志文件,全干掉

3.删除过期的代码包

一般线上环境会以软链接形式发布代码包,方便回滚。

但是代码包会越来越多,所以也需要定期清理

LEFT_PACKAGE_NUM=7
APP_DIR='/data/code/'
#app的名称
APPS=(shop)

for APP in "${APPS[@]}";do
        ls -l -t $APP_DIR |grep $APP |  tail -n +$LEFT_PACKAGE_NUM | awk 'BEGIN {FS=" "} {print $NF}' |xargs -i rm -rf $APP_DIR{}
done

因为有软连接存在,实际上剩余线上发布包的packgeNum是7-2=5个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值