自动删除指定时间内的日志和文件shell脚本

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010695420/article/details/79093206

直接上代码,注意shell格式很重要:

#!/bin/bash
#删除5天以前的日志数据  日志位于./logs 文件夹下
find ./logs/ -mtime +5 -name "*.log*" -exec rm -rf {} \;

#需要保留7天的数据的文件夹名
FileDir7=(drama homepage weibo weixin )
#需要保留20天的数据的文件夹名
FileDir20=(competitor douban omit)

start=$(date +%y-%m-%d)  
#该sh脚本产生的日志
File=./logs/log-dellogfile.log.$start 
#数据存储文件夹
FilePath=./output_data/

#如果文件夹不存在容易报错且误删数据
if [ ! -d $FilePath ]; then
        mkdir $FilePath
fi

for dir in "${FileDir7[@]}"; do
    FilePathTemp=${FilePath}${dir}
    #如果文件夹不存在容易报错且误删数据  非常重要  一定要建立文件夹  空的也无所谓  不占空间
    if [ ! -d $FilePathTemp ]; then
        mkdir $FilePathTemp
    fi
done

for dir in "${FileDir20[@]}"; do
    FilePathTemp=${FilePath}${dir}
    if [ ! -d $FilePathTemp ]; then
        mkdir $FilePathTemp
    fi
done

for dir in $(ls $FilePath); do
    for filename in "${FileDir7[@]}"; do
        if [ $filename = $dir ]; then
            FilePathTemp=${FilePath}${filename}
            echo $FilePathTemp >> $File
            day=7
            echo "find $FilePathTemp -type d -mtime +$day > $File" >> $File
            find $FilePathTemp -type d -mtime +$day >> $File  

            echo "find $FilePathTemp -type d -mtime +$day | xargs rm -rf" >> $File
            find $FilePathTemp -type d -mtime +$day | xargs rm -rf  
        fi
    done
    for filename in "${FileDir20[@]}"; do
        if [ $filename = $dir ]; then
            FilePathTemp=${FilePath}${filename}
            echo $FilePathTemp >> $File
            day=20
            echo "find $FilePathTemp -type d -mtime +$day > $File" >> $File
            find $FilePathTemp -type d -mtime +$day >> $File  

            echo "find $FilePathTemp -type d -mtime +$day | xargs rm -rf" >> $File 
            find $FilePathTemp -type d -mtime +$day | xargs rm -rf  
        fi
    done
done
展开阅读全文

没有更多推荐了,返回首页