美文网首页
如何操作Linux 定时删除指定目下N天前的文件

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

作者: 测试大头兵 | 来源:发表于2018-03-13 13:24 被阅读7次

    转载:http://www.51testing.com/html/74/n-3725074.html​

    ​做测试的童鞋相信对Linux这个系统不陌生吧,若不及时清理某些文件,长时间运行下去,系统也会吃不消的呢?正好,前几天在网上看到一篇文章【给 Linux 下的 rm 命令添加个“回收站”】一文来实现对 rm 命令的安全防护,但是这样“回收站”文件夹会随着使用 rm 命令的时间越来越占据容量,这明显是不科学的,所以应该有个智能的解决办法,那就是可以自动定时的清除指定某个时间段之前文件,几天就来详细说说如何实现。

    请点击此处输入图片描述

    可以利用Linux的crontab定时任务来实现这样的需求,具体命令如下:

    * 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分)修改时间

    若是删除目录下的指定文件可以用:

    find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;

    写好了命令,下面就是启动定时任务了。

    首先要创建一个crontab,输入命令crontab -e 进入编辑界面,编写你的定时任务,即上面的命令。

    也可以不使用crontab -e命令创建crontab配置文件,其他任何文本编辑器编写命令序列,比如文件名为abc.cron,然后使用命令:crontab abc.cron将命令序列添加到crontab中。

    创建好crontab之后,就可以把上面的命令写道 /etc/crontab这个文件中

    通过 crontab /etc/crontab 命令启动这个定时任务,可以通过 crontab -l 命令查看当下的定时任务

    为保险起见,最好再重启服务,之后查看下crontab的服务状态

    命令如下:

    查看crontab服务状态:service crond status

    /sbin/service crond start //启动服务

    /sbin/service crond stop //关闭服务

    /sbin/service crond restart //重启服务

    /sbin/service crond reload //重新载入配置

    基本流程就是这样。

    不得不叹服,Linux命令行的强大呀! Windows 下的回收站功能在Linux下就是这容易就实现了!还多了个智能定时清理“回收站”的功能!嘿嘿,比 Windows 的回收站好用多了!

    相关文章

      网友评论

          本文标题:如何操作Linux 定时删除指定目下N天前的文件

          本文链接:https://www.haomeiwen.com/subject/sckzfftx.html