Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > linux定时删除N天前的文件(文件夹)

linux如何定时删除N天前的文件(文件夹)

作者:wd520521

这篇文章主要介绍了linux如何定时删除N天前的文件(文件夹)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

在业务中,给定的磁盘容量小,为了避免爆盘,需要定时清除数据,所以总结了一下设置方法:

可以使用find命令

find 路径 -mtime +天数 -type d -name "文件名" -exec rm -rf {} ;
 
find 路径 -mtime +15-type d -name "*" -exec rm -rf {} ;
find /tmp -mtime +15 -type d -name "*" -exec rm -rf {} \;
/tmp --设置查找的目录;
-mtime +15 --设置修改时间为15天前;
-type d --设置查找的类型为文件;其中f为文件,d则为文件夹
-name "*" --设置文件名称,可以使用通配符;
-exec rm -rf --查找完毕后执行删除操作;
 {} \; --固定写法

还可以把此命令写入脚本中

1、创建脚本cleandata.sh

vim cleandata.sh

2、写入命令

find /tmp -mtime +15 -type d -name "*" -exec rm -rf {} \;

3、保存文件

按Esc键
 
:wq  #保存

4、配置可执行

chmod u+x ./cleandata.sh

 5、配置到crontab

crontab -e
#每天九点十五自动执行
15 9 * * *  /home/test/cleandata.sh > /dev/null 2>&1

*号解释:

以上已经配置完成,亲测有效 

linux定时删除时间格式文件夹

#!/bin/bash
 
function deletedir(){
    ago_file=$(date -d '30 days ago' +%Y%m%d)
        dir_or_file=$1
        if [ -d $dir_or_file ]
        then
            for element_date in `ls $dir_or_file`
            do
                dir_or_file_date=$dir_or_file"/"$element_date
                if [ -d $dir_or_file_date ]
                then
                        date_file=$(date -d $element_date +%Y%m%d)
                        if [ $date_file -lt $ago_file ]
                        then
                                rm -rf $dir_or_file_date
                        fi
                fi
            done
        fi
}
root_dir="/data0/test"
deletedir $root_dir

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文