案例二十一备份30天之前的日志并压缩到指定目录下

#!/bin/bash
#备份目录
info_backdir=/backup/log/info/`date -d "30 day ago" +%F |awk -F "-" '{print $1"-"$2}'`
error_backdir=/backup/log/error/`date -d "30 day ago" +%F |awk -F "-" '{print $1"-"$2}'`
#获取info日志目录
info_log_dir=$(ls /data/logs/hzCloud/info/*/info-`date -d "30 day ago" +%F`.*.log |awk 'BEGIN{FS=OFS="/"}{NF--;}{print}' |head -n 1)
#获取error日志目录
error_log_dir=$(ls /data/logs/hzCloud/error/error-`date -d "30 day ago" +%F`.*.log |awk 'BEGIN{FS=OFS="/"}{NF--;}{print}' |head -n 1)

#判断目录是否存在,没有就创建
if [ ! -d "$info_backdir" ]; then
  mkdir -p $info_backdir
fi

if [ ! -d "$error_backdir" ]; then
  mkdir -p $error_backdir
fi

#压缩日志到备份目录
echo '开始备份日志并压缩...'
if [ -f $info_log_dir/info-`date -d "30 day ago" +%F`.*.log ];then 
      mv $info_log_dir/info-`date -d "30 day ago" +%F`.*.log $info_backdir/
      cd $info_backdir
      tar -zcvf $info_backdir/info-`date -d "30 day ago" +%F`.tar.gz info-`date -d "30 day ago" +%F`.*.log 
else
      echo "该info日志文件不存在"
fi

if [ -f $error_log_dir/error-`date -d "30 day ago" +%F`.*.log ];then
      mv $error_log_dir/error-`date -d "30 day ago" +%F`.*.log $error_backdir/
      cd $error_backdir
      tar -zcvf $error_backdir/error-`date -d "30 day ago" +%F`.tar.gz error-`date -d "30 day ago" +%F`.*.log
else
      echo "该error日志文件不存在"
fi
echo '压缩完毕...'

posted @ 2024-04-15 11:32  阿哲技术之路  阅读(2)  评论(0编辑  收藏  举报