第一种方式:根据文件的修改日
#!/bin/bash
#删除30天以前的日志数据 日志位于./logs 文件夹下
find ./logs/ -mtime +30 -name "*.log*" -exec rm -rf {} \;
#!/bin/bash
#移动30天以前的日志数据到其他文件夹 日志位于./logs 文件夹下
find ./logs/ -mtime +30 -name "*.log*" -exec mv {} /路径/ \;
第二种方式:根据文件名
#要删除日志的时间区间
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
https://blog.csdn.net/yakoo5/article/details/17709561