Linux Crontab 介绍

发布时间 - 2026-01-11 02:20:51    点击率:

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

Crontab是什么

  我总是喜欢将一些特别专业的词汇翻译成比较浅显易懂的词语,可能并不是很准确,但是我觉得更便于理解。

  按照前人的解释,cron是系统主要的调度进程,可以在非人工干预的情况下运行作业。crontab命令允许用户提交、编辑或删除相应的作业。简单来说,当我们需要让系统执行一个定时任务时,我们就会用到它,比如定时重启tomcat,或者定时调用一个jar包来执行某项功能等。

1.Cron的启动与关闭

由于Cron是Linux的内置服务,可以用以下的方法启动.关闭这个服务:

/sbin/service crond start      //启动服务
/sbin/service crond stop      //关闭服务
/sbin/service crond restart    //重启服务
/sbin/service crond reload     //重新载入配置

2.Cron配置文件

2.1全局配置文件

crontab在/etc目录下面存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五个目录和crontab,cron.deny二个文件.

cron.daily是每天执行一次的job,cron.weekly是每个星期执行一次的job.cron.monthly是每月执行一次的job,cron.hourly是每个小时执行一次的job.cron.d是系统自动定期需要做的任务,但是又不是按小时,按天,按星期,按月来执行的,那么就放在这个目录下面.

/etc/crontab文件一般如下:

01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

我们可在此文件中添加自己需要的cron job.

/etc/cron.deny文件就是用于控制不让哪些用户使用Crontab的功能.

2.2用户配置文件

每个用户都有自己的cron配置文件,通过crontab -e 就可以编辑,一般情况下我们编辑好用户的cron配置文件保存退出后,系统会自动就存放于/var/spool/cron/目录中,文件以用户名命名.

linux的cron服务是每隔一分钟去读取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的内容.

3.Cron命令格式

crontab [ -u user ] 文件 
crontab [ -u user ] { -l | -r | -e }
-u:指定某一用户
-e:执行文字编辑器来设定用户(当前用户或指定用户)时程表,内定的文字编辑器是vi.
-r:删除用户时程表.
-l:列出用户时程表.

4.Cron文件格式

*  *  *  *  *  command

分 时 日 月 周   命令

第1列表示分钟1~59, 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

5.Cron文件使用说明

5.1 一般情况

当f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余类推.

* * * * * /bin/usershell  每天每分钟执行一次/bin/usershell
当f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推.

0-12 * * * * /bin/usershell  每天每小时从0到12分钟每分钟执行一次/bin/usershell
当f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推.

* */2 * * * /bin/usershell  每天每2小时执行一次/bin/usershell
当f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推.

* 1,3,5,7 * * * /bin/usershell  每天每逢1,3,4,7点执行一次/bin/usershell

5.2. 冲突逻辑

日期可以用月限定,也可以用“星期”指定,如果两个段有冲突,那么,第六段的命令将在匹配任何一个的情况下都运行,比如

"30 4 1,15 * 5",将在每月的1号和15号加每个周五,上午4:30运行.

5.3. 符号"%"

"%"在Cron文件中,有"结束命令行","换行","重定向"的作用,假如不需要"%"的特殊作用,需要使用转义符转义.

5.4. @reboot

这个不需要理解,为了达到在开机后运行,且只运行一次的目的.除了这个,也无法通过前五段的设置来实现.

@annually也是这个功能.

至于@yearly,@monthly等等其实都可以用上面的五段来设置.

以上所述是小编给大家介绍的Crontab 知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# crontab介绍  # linux  # crontab  # linux使用find和crontab命令定期清理过期文件  # 详解使用python crontab设置linux定时任务  # Linux crontab定时任务配置方法(详解)  # 浅谈Linux配置定时  # 使用crontab -e与直接编辑/etc/crontab的区别  # linux下使用crontab实现定时PHP计划任务失败的原因分析  # linux使用crontab实现PHP执行计划定时任务  # MySQL定时备份之使用Linux下的crontab定时备份实例  # 如何使用Linux的Crontab定时执行PHP脚本的方法  # 可以用  # 配置文件  # 都要  # 每分钟  # 在此  # 将在  # 不需要  # 重启  # 希腊语  # 编辑器  # 每小时  # 到第  # 小编  # 自己的  # 情况下  # 都有  # 放在  # 我觉得  # 不是很  # 这段 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  手机网站制作与建设方案,手机网站如何建设?  再谈Python中的字符串与字符编码(推荐)  JavaScript如何操作视频_媒体API怎么控制播放  🚀拖拽式CMS建站能否实现高效与个性化并存?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  如何用狗爹虚拟主机快速搭建网站?  如何安全更换建站之星模板并保留数据?  Laravel storage目录权限问题_Laravel文件写入权限设置  详解Huffman编码算法之Java实现  Laravel PHP版本要求一览_Laravel各版本环境要求对照  Laravel如何实现事件和监听器?(Event & Listener实战)  jquery插件bootstrapValidator表单验证详解  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Laravel如何实现多对多模型关联?(Eloquent教程)  微信小程序 闭包写法详细介绍  如何挑选最适合建站的高性能VPS主机?  Laravel如何记录自定义日志?(Log频道配置)  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  如何快速查询网站的真实建站时间?  javascript中闭包概念与用法深入理解  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  做企业网站制作流程,企业网站制作基本流程有哪些?  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  昵图网官方站入口 昵图网素材图库官网入口  Android 常见的图片加载框架详细介绍  Android仿QQ列表左滑删除操作  Laravel如何使用Collections进行数据处理?(实用方法示例)  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  如何在局域网内绑定自建网站域名?  如何在服务器上配置二级域名建站?  php json中文编码为null的解决办法  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  JS碰撞运动实现方法详解  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  奇安信“盘古石”团队突破 iOS 26.1 提权  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  如何在建站主机中优化服务器配置?  Laravel如何实现本地化和多语言支持?(i18n教程)  浅析上传头像示例及其注意事项  如何快速打造个性化非模板自助建站?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  如何自定义建站之星网站的导航菜单样式?  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  如何在景安云服务器上绑定域名并配置虚拟主机?