直接上代码,注意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