全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

linux使用find和crontab命令定期清理过期文件

crontab 命令

crontab 命令是 Linux 中用来设定重复执行命令或脚本的工具。它能够在指定的时间段内,按照需求以某一时间间隔执行命令或脚本。

crontab 的基本用法

crontab [-u <user>] [-e|-l|-r]
crontab <filename>

crontab <filename> 可以读入一个以 crontab 语法书写的文件,并依照文件内的指示执行定时任务。与此同时,crontab -l 能够在标准输出上列出当前用户所有的定时任务情况。因此,我们可以用 crontab -l > <filename> 来保存当前 crontab 的状况,在有需要的时候(比如误删除)用 crontab <filename> 读入恢复。

crontab -e 则会启动系统默认的编辑器。这个编辑器由系统环境变量 EDITOR 指定;例如 export EDITOR=vi,则 crontab -e 会启动 vi 来编辑当前用户的 crontab 定时任务文件。crontab -r 则会删除用户的所有 crontab 定时任务。

用来指定用户的 -u <user> 选项则会改变 -e/-l/-r 等选项的行为。如果不通过 -u 指定用户,则默认的操作都是针对当前用户的;反之,则针对指定的用户。例如 crontab -u Liam -r 则会删除用户 Liam 的 crontab 定时任务——当然,你需要有足够的权限这么做。

crontab 文件的格式

不管是用 crontab <filename> 从文件读入定时任务,还是用 crontab -e 编辑定时任务,我们都会接触到 crontab 格式的命令。

crontab 的命令格式如下:

从上图我们可以看出:

  1. 一条 crontab 命令分成六列,写在一行内;
  2. 前 5 列用于定时,指明什么时候开始执行;
  3. 第 6 列用于指定需要定时执行的命令或脚本;

此外,和 Shell 脚本一样,在 crontab 文件中,我们也可以用 # 来表示注释。

花式定时

在 crontab 命令中用于定时的前 5 列中,支持以下符号,用于「花式定时」:

  1. 星花(*):代表所有可能的值;
  2. 逗号(,):用逗号隔开同一字段的不同范围;
  3. 连字符(-):用连字符连接两个整数,表示整数范围;
  4. 斜线(/):实际上是除法斜线,用来指定时间间隔频率。

一些例子

有了这些知识,我们就可以看一些实例了。

# 每分钟执行一次
* * * * * command
# 每 5 分钟执行一次
*/5 * * * * command
# 每个小时的 15 分和 45 分执行一次
15,45 * * * * command
# 晚上 20:00 -- 20:15 每分钟执行一次
0-15 20 * * * command
# 每周一上午 10 点执行一次
0 10 * * 1 command

find —— 找些乐子

man find 给出的 find 命令的一般形式是:

find [-H] [-L] [-P] [-D debugopts] [-Olevel] path ... [expression]

其中 [-H] [-L] [-P] [-D debugopts] [-Olevel] 很少会用到。因此,find 命令的一般形式可以简化为 find path ... [expression];亦即,在一些路径(默认递归地包含子路径)中找到合适的文件,然后根据 expression 执行相应动作。

  path ...: find 命令查找的路径

  expression: 具体形式是 -parameters [-exec -ok]

      -parameters 有很多,待下一节具体介绍常用的参数

      -exec command {} \; 执行一条 Shell 命令

      -ok command {} \; 同 -exec 的作用,不过在执行每条命令前,都会提示用户确认

常用的参数

  -name : 按照文件名查找文件,接受通配符

      find . -name "*.cpp": 在当前目录 (.) 及子目录下递归地查找所有后缀为 .cpp 的文件,并打印在标准输出中

  -perm : 按照文件权限查找文件

      find . -perm 755: 在当前目录 (.) 及子目录下递归地查找所有权限为 755 的文件(目录),并打印在标准输出中

      find . -perm 644 -name "*.cpp": 在当前目录及子目录下 (.) 递归地查找所有权限为 644 的 .cpp 文件,并打印在标准输出中

  -group : 按照文件的所属组查找

  -user :  按照文件的所有者查找

      find . -user search: 在当前目录 (.) 及子目录下递归地查找所有 search 账号所属的文件,并打印在标准输出中

  -atime, -mtime, -amin, -mmin : a 开头的表示「按照上次访问时间查找」,m 开头的表示「按照上次修改时间查找」;-n 表示 n 时间内,+n 表示 n 时间以前

      find . -atime +7: 在当前目录 (.) 及子目录下递归地查找所有上次访问在 7 天以前的文件,并打印在标准输出中

      find . -mmin -10: 在当前目录 (.) 及子目录下递归地查找所有上次修改在 10 分钟以内的文件,并打印在标准输出中

  -newer file1 ! file2 : 查找比 file1 新但是比 file2 旧的文件

  -type [b|d|c|p|l|f] : 按照文件类型查找

      b: 块设备文件

      d: 目录

      c: 字符设备文件

      p: 管道文件

      l: 符号链接文件

      f: 普通文件

  -follow : 如果 find 命令遇到符号链接文件,就跟踪至链接所指向的文件

  -delete : 删除查找到的文件或目录

定期清理

至此,定期清理无用的文件就变得很简单了。我们只需要在 crontab 里结合 find 命令的 -delete 选项即可。

0 8 * * * find /home/s/coredump -user search -type f -mtime +7 -delete

这里,我们在每天早上 8 点整执行 find 命令;该命令会在 /home/s/coredump 目录下寻找 search 用户创建的普通 7 天前的文件,然后删除掉。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# crontab  # find  # 定期执行脚本  # find定期删除目录  # linux命令之crontab命令用法详解  # Linux定时任务Crontab命令使用详解与总结  # Linux定时执行任务at和crontab命令详解  # Linux6.7卸载系统自带的mysql-libs* crontab命令不能用了原因分析  # linux如何通过crontab命令定时执行shell脚本  # 递归  # 目录下  # 则会  # 可以用  # 编辑器  # 每分钟  # 都是  # 有很多  # 只需  # 会在  # 要在  # 时间内  # 亦即  # 很简单  # 可以看出  # 这么做  # 这篇文章  # 写在  # 接触到  # 每条 


相关文章: 建站之星在线客服如何快速接入解答?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  C#怎么创建控制台应用 C# Console App项目创建方法  如何通过FTP服务器快速搭建网站?  建站之星展会模板:智能建站与自助搭建高效解决方案  如何挑选优质建站一级代理提升网站排名?  教程网站设计制作软件,怎么创建自己的一个网站?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  头像制作网站在线制作软件,dw网页背景图像怎么设置?  建站之星后台管理:高效配置与模板优化提升用户体验  微信推文制作网站有哪些,怎么做微信推文,急?  如何将凡科建站内容保存为本地文件?  制作网站公司那家好,网络公司是做什么的?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  C++时间戳转换成日期时间的步骤和示例代码  在线制作视频网站免费,都有哪些好的动漫网站?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何零基础开发自助建站系统?完整教程解析  代刷网站制作软件,别人代刷火车票靠谱吗?  如何通过服务器快速搭建网站?完整步骤解析  公司网站设计制作厂家,怎么创建自己的一个网站?  个人网站制作流程图片大全,个人网站如何注销?  c# 服务器GC和工作站GC的区别和设置  广平建站公司哪家专业可靠?如何选择?  太平洋网站制作公司,网络用语太平洋是什么意思?  香港服务器选型指南:免备案配置与高效建站方案解析  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何选择服务器才能高效搭建专属网站?  建站主机系统SEO优化与智能配置核心关键词操作指南  如何在阿里云ECS服务器部署织梦CMS网站?  网站制作需要会哪些技术,建立一个网站要花费多少?  大连网站制作公司哪家好一点,大连买房网站哪个好?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  定制建站流程解析:需求评估与SEO优化功能开发指南  如何在服务器上配置二级域名建站?  相册网站制作软件,图片上的网址怎么复制?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  网站制作的步骤包括,正确网址格式怎么写?  金*站制作公司有哪些,金华教育集团官网?  ,交易猫的商品怎么发布到网站上去?  宝塔建站无法访问?如何排查配置与端口问题?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何挑选高效建站主机与优质域名?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  焦点电影公司作品,电影焦点结局是什么?  如何使用Golang安装API文档生成工具_快速生成接口文档 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。