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

直接上代码,注意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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值