shell备份日志

91 阅读1分钟
#日志文件所在目录
path=/home/tomcat/apache-tomcat-project/logs
#进入日志目录
cd $path
#catalina.out日志文件备份
#获取前一天的日期
bak_date=$(date +%Y-%m-%d -d "1 days ago")
#备份catalina.out日志,后面添加日期
cp catalina.out catalina.out.$bak_date.log
#清空catalina.out日志文件
echo > catalina.out
#20天之前的日志文件删除
#获取20天之前的日期
del_date=$(date +%Y-%m-%d -d "20 days ago")
#获取文件名中的日期字符串,然后对比时间进行相应的操作,localhost_access_log的后缀文件名一般是txt,这里包括txt文件
for n in $(ls *.log *.txt -1);do
m=$(echo $n | awk -F. '{print $(NF-1)}')
m=$(echo "${m:0-10}")
if [[ $m < $del_date || $m = $del_date ]];then
echo file $n will be deleted.
rm -rf $n
fi
done
#一周之前的文件压缩
#获取一周之前的日期
zip_date=$(date +%Y-%m-%d -d "7 days ago")
#获取文件名中的日期字符串,然后对比时间进行相应的操作
for n in $(ls *.log *.txt -1);do
m=$(echo $n | awk -F. '{print $(NF-1)}')
m=$(echo "${m:0-10}")
echo $n $m
if [ ! $m ]; then
echo "IS NULL"
continue
fi
if [[ $m < $zip_date || $m = $zip_date ]];then
echo file $n will be zip.
zip $n.zip $n
rm -rf $n
fi
done