删除n天前的所有目录和文件 - linux命令

删除n天前的所有目录和文件 - linux命令,第1张

命令可以删除 [3] 天前的所有目录

其中:

/data/backup/ - 目标目录

-maxdepth - 最大目录层次,我要从第一级目录开始删除,1就可以了

-type d - *** 作对象为目录, f 代表文件

-mtime + - 7天前的目录

-exec rm -rf {} - 执行命令的标准格式

配合脚本,就可以自动在服务器上清理旧的临时文件了。

磁盘只有22T容量,为了避免爆盘,业务需要定时清除数据,根据网上的资料总结了一下设置方法:

可以使用find命令

另外的方法大同小异:

可以吧这个命令写到脚本里,

cleandata.sh

find /tmp -mtime +30 -type f -name "*" -exec rm -rf {}

配置可执行

chmod u+x ./cleandata.sh

配置到crontab

crontab -e

0 0 * * * /home/username/cleandata.sh >/dev/null 2>&1

每天零点自动执行

其中:

第一个 号表示时间中的 分钟 取值范围:0-59

第二个 号表示时间中的 小时 取值范围:0-23

第三个 号表示一个月中的第几天,取值范围:1-31

第四个 号表示一年中的第几个月,取值范围:1-12

第五个*号表示一个星期中的第几天,以星期天开始依次的取值为0~7,0、7都表示星期天

find 命令可以完成这一需求,比如删除3天前的所有以“.log”结尾的文件:

find /文件路径 -name "*.log" -mtime +2 -exec rm {} \

说明:

1. 文件路径是目标文件所在路径;

2. -name 设定目标文件名,建议采用,否则可能误删其他文件;

3. -ctime 文件最后一次修改时间,后面只能用整数,单位为天,同时,还有atime,mtime,amin,cmin,mmin等时间参数可选,具体请查看帮助;

4. 时间说明如下图(随手画的,大概是这个意思),所以删除三天前的文件要用+2

5. -exec 表示需要执行的命令,{}代表find找到的内容,"\"是固定写法表示结束-exec,

所以例子的"-exec rm {} \" 就表示对find找到的符合条件的文件执行删除 *** 作


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8782530.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存