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 的命令格式如下:
从上图我们可以看出:
此外,和 Shell 脚本一样,在 crontab 文件中,我们也可以用 # 来表示注释。
花式定时
在 crontab 命令中用于定时的前 5 列中,支持以下符号,用于「花式定时」:
一些例子
有了这些知识,我们就可以看一些实例了。
# 每分钟执行一次 * * * * * 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# F# 的 MailboxProcessor 和 C# 的 Actor 模型
如何撰写建站申请书?关键要点有哪些?
如何在阿里云虚拟服务器快速搭建网站?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
英语简历制作免费网站推荐,如何将简历翻译成英文?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
定制建站流程步骤详解:一站式方案设计与开发指南
建站之家VIP精选网站模板与SEO优化教程整合指南
如何通过FTP空间快速搭建安全高效网站?
如何选择靠谱的建站公司加盟品牌?
如何在香港服务器上快速搭建免备案网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
盐城做公司网站,江苏电子版退休证办理流程?
c++ stringstream用法详解_c++字符串与数字转换利器
如何快速建站并高效导出源代码?
如何高效生成建站之星成品网站源码?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
建设网站制作价格,怎样建立自己的公司网站?
如何快速搭建支持数据库操作的智能建站平台?
如何在橙子建站上传落地页?操作指南详解
网站制作说明怎么写,简述网页设计的流程并说明原因?
如何选择高效可靠的多用户建站源码资源?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
如何续费美橙建站之星域名及服务?
平台云上自助建站如何快速打造专业网站?
北京专业网站制作设计师招聘,北京白云观官方网站?
建站之星免费模板:自助建站系统与智能响应式一键生成
官网网站制作腾讯审核要多久,联想路由器newifi官网
如何在搬瓦工VPS快速搭建网站?
如何在景安服务器上快速搭建个人网站?
如何生成腾讯云建站专用兑换码?
如何快速搭建高效可靠的建站解决方案?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
如何通过万网虚拟主机快速搭建网站?
微信小程序 五星评分(包括半颗星评分)实例代码
,南京靠谱的征婚网站?
如何通过远程VPS快速搭建个人网站?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。