版权声明:本文为博主原创文章,未经博主允许不得转载。原创不易,转载请注明出处。 https://blog.csdn.net/sinat_27933301/article/details/85946046
第一种方式:根据文件的修改日期
#!/bin/bash
#删除30天以前的日志数据 日志位于./logs 文件夹下
find ./logs/ -mtime +30 -name "*.log*" -exec rm -rf {} \;
第二种方式:根据文件名
#要删除日志的时间区间
log_dir=/logs
content=$(date +%Y%m%d --date '1 month ago')
cd $log_dir
#计算删除文件的数量
FileNum=$(find -name "*$content*".log|wc -l)
echo "------clean logs file:$(date +%Y%m%d_%H%M%S)------">>log.txt
if [ "$FileNum" -gt 0 ];then
echo "delete [$content]" >> log.txt
rm -rf ./*$content*
fi