当前位置:首页 » 操作系统 » linux定时删除文件

linux定时删除文件

发布时间: 2022-04-13 09:53:04

‘壹’ linux什么命令可以根据日期删除文件

需要根据时间删除这个目录下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的无效数据。

可以使用下面一条命令去完成:

1

find/home/lifeccp/dicom/studies-mtime +21 -name "*.*"-execrm-Rf {} ;

这个是根据时间删除。

下面简要解释一下,这句shell命令:

1

find/home/lifeccp/dicom/studies-mtime +21 -name "*.*"-execrm-Rf {} ;

  • /home/lifeccp/dicom/studies :准备要进行清理的任意目录

  • -mtime:标准语句写法

  • +10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件

  • "*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件

  • -exec:固定写法

  • rm -rf:强制删除文件,包括目录

  • {} ; :固定写法,一对大括号+空格+/+;

  • 当然也可以根据文件名、根据大小,根据其他不同条件过滤删除,或者修改等,可以考虑sort等命令结合使用。

‘贰’ linux 下如何编写定时删除某目录下文件的脚本

自己编写crontab设定计划任务就是了,
那个服务就是做这些定时的,自动化的工作用的。要写什么脚本的,一个命令搞定。
给你个手册页自己看吧。
补充回答:
运行这个命令:
crontab
-e
此命令将打开一个文本编辑器以添加新任务。
*
20
*
*
*
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
用对应的文本编辑器命令保存退出(vi编辑器是按esc后打:wq)
如果你对这种方式不熟悉,也可以直接改/etc/crontab,我看到你是要删除root文件夹内的目录,假设你有root权限(因为/etc/crontab所有者是root,并且只有以root身份执行删除命令才能删除root
home内的文件),用以下命令打开此文件:
vi
/etc/crontab
将光标移动至最后一行,按o键新开一行输入以下内容:
*
20
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
给你解释下此行的含义吧,前五个以4个空格分隔开的值依次表示:分、时、日、月、周,如果取所有值就是打*号,如果你想周期性的运行一个任务,crontab也接受范围指定,比如说一天中的早8点到晚6点每隔一小时(就是每两小时,将会在8,10,12,14,16,18执行)执行你这个删除命令这样写:
*
8-18/2
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
第一个字段是分钟,取值范围:0-59
第二个字段是小时。取值范围:0-23
第三个字段是一个月中的第几天,取值范围:1-31
第四个字段是一年中的第几个月,取值范围:1-12
最后一个字段是一个星期中的第几天,以星期天开始依次的取值为0~7,0、7都表示星期天。
下一个字段是执行该命令的用户身份,这里是root用户,最后一个字段就是定时运行的命令。

‘叁’ linux crontab 定时 清除 文件和目录

rm 加上参数 -rf

‘肆’ linuxcrontab定时清除文件和目录

希望对你有帮助!0022***/usr/bin/find/backupmongo/-mtime+7-execrm-rf{};

‘伍’ linux定时删除一个目录的脚本

可以使用find的 ctime 选项,
ctime的意思是最后修改的时间 +3 表示三天前,也就是在 /backup_100 目录里 找到三天前的符合 abc*的文件及目录并删除。
find /backup_100 -name "abc*" -ctime +3 -exec rm {} \;
如果每天备份多次,
可以使用 NUM=`ls|wc -l`;DEL_NUM=$(($NUM-3)); for i in `ls -tr|head -$DEL_NUM`;do rm -rf $i;done

这样,首先判断当前备份了$NUM次,也就是/backup/abcxxx里有多少个文件夹,
然后NUM-3就是需要删除的文件夹的个数,
然后使用循环,
ls -tr|head -$DEL_NUM 这样通过按时间升序排列取前$DEL_NUM个目录名并依次删除,最后就只剩下了最新的三个目录了。
然后把这样的脚本添加到你的自动备份脚本的最后面就可以了

‘陆’ 如何操作Linux 定时删除指定目下N天前的文件

* 6 * * * find /root/home/zhang/* ctime 1 -exec rm -rf {} \;
表示每天早上六点删除/root/home/zhang目录下一天前创建的所有文件,不删除文件夹zhang,如果这个文件夹也要删除的话用 * 6 * * * find /root/home/zhang ctime 1 -exec rm -rf {} \;
* 6 * * * 第一个*号表示时间中的 分钟 取值范围:0-59
第二个*号表示时间中的 小时 取值范围:0-23
第三个*号表示一个月中的第几天,取值范围:1-31
第四个*号表示一年中的第几个月,取值范围:1-12
第五个*号表示一个星期中的第几天,以星期天开始依次的取值为0~7,0、7都表示星期天
ctime 表示创建时间,1 表示一天前,其实Linux中不存在文件创建时间,只有访问时间(atime)、修改时间(mtime)、状态改动时间(ctime)
可以通过命令 stat + 文件路径 查看时间
也可通过命令 touch -t 201212212359 aa (建立文件aa,时间是2012年12月21日23时59分)修改时间

‘柒’ 如何定时删除linux服务器文件

肯定是用脚本命令去删除了,比如crontab自动执行,或者用脚本触发
方法很多,
你可以有针对性的,如
rm
-rf

‘捌’ linux按指定时间删除文件和文件夹

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找到的符合条件的文件执行删除操作

‘玖’ linux 定时删除n天前的文件crontab

先算数量,判断后再删
filenum=`find . -name "log.*" -mtime +10 | wc -l`
if [ $filenum -gt 10 ] ; then
filenum=`find . -name "log.*" -mtime +10 -exec rm -f {} \;
fi

‘拾’ linux 定期删除文件夹下面超过30日的文件

find /tmp/sm{a,b,c} -type f -mtime 30 -exec rm {} \;

需要定期,就把这条命令放入crontab中即可。

热点内容
儿童编程教材 发布:2024-11-15 13:37:34 浏览:42
查询服务器连接地址 发布:2024-11-15 13:27:20 浏览:504
win8用户文件夹转移 发布:2024-11-15 13:21:24 浏览:73
批量缓存淘宝教育上的视频 发布:2024-11-15 13:20:44 浏览:723
如何确定手机是不是安卓 发布:2024-11-15 13:19:33 浏览:734
loadingbuffer怎么配置 发布:2024-11-15 13:16:57 浏览:797
安卓婉儿最低市战力在哪里 发布:2024-11-15 13:04:02 浏览:852
安卓如何设置图片模式 发布:2024-11-15 13:00:27 浏览:497
机房怎么用电脑连接服务器 发布:2024-11-15 12:52:24 浏览:561
删数据库事件 发布:2024-11-15 12:10:54 浏览:457