第一种方式:根据文件的修改日
#!/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.youkuaiyun.com/yakoo5/article/details/17709561

本文介绍两种通过Shell脚本批量清理指定目录下旧日志的方法:一是根据文件最后修改时间,二是根据文件名中包含的时间戳。适用于系统管理员和运维人员快速释放磁盘空间。
1678

被折叠的 条评论
为什么被折叠?



