需求:JOB日志7天内保留,最近三个月内7天之外的压缩,超三个月的删除
目录:/app/---/log/biz
文件:jobid_yyyymmdd_序号.log
文件多少不确定
实现脚本如下:
说明:使用ls、awk、uniq命令分析出需求目录下有那些文件,在把这些文件放到数组中,然后进行循环处理。
#!/bin/sh
#author xj
#date 20170611
echo "###BEGIN###"
echo "begin time `date +%Y-%m-%d\ %H\:%M\:%S`"
cd /app/---/log/biz
zip_date=`date +"%Y%m%d" -d "-7 days"`
zip_date1=`date "+%Y%m%d" -d "-90 days"`
ar=( $(ls -l *${zip_date}*|awk '{print $9}'|awk -F "_" '{print $1}'|uniq -c|awk '{print $2}') )
for (( i = 0; i < ${#ar[@]}; ++i ))
do
tar -czvf ${ar[i]}_${zip_date}.log.tar.gz ${ar[i]}_${zip_date}_* --remove-files
rm -rf ${ar[i]}_${zip_date1}.log.tar.gz
done
目录:/app/---/log/biz
文件:jobid_yyyymmdd_序号.log
文件多少不确定
实现脚本如下:
说明:使用ls、awk、uniq命令分析出需求目录下有那些文件,在把这些文件放到数组中,然后进行循环处理。
#!/bin/sh
#author xj
#date 20170611
echo "###BEGIN###"
echo "begin time `date +%Y-%m-%d\ %H\:%M\:%S`"
cd /app/---/log/biz
zip_date=`date +"%Y%m%d" -d "-7 days"`
zip_date1=`date "+%Y%m%d" -d "-90 days"`
ar=( $(ls -l *${zip_date}*|awk '{print $9}'|awk -F "_" '{print $1}'|uniq -c|awk '{print $2}') )
for (( i = 0; i < ${#ar[@]}; ++i ))
do
tar -czvf ${ar[i]}_${zip_date}.log.tar.gz ${ar[i]}_${zip_date}_* --remove-files
rm -rf ${ar[i]}_${zip_date1}.log.tar.gz
done