Cron这个词儿来源于希腊的一个表示时间的单词Chronos。在Linux上可以通过Cron设置schedule task,通过这种方式可以让你在每天半夜睡觉的时候自动备份你的文件或者文件夹等等,在自动化测试中可以很好的完成daily build的工作。
Cron把每条schedule设置存储在crontab (cron table)文件中。这个文件通常在/etc目录下。另外每个用户也可以有他自己的crontab,这类crontab一般存储在/var/spool/cron文件夹下。编辑crontab的方法也很简单,直接在命令行敲入crontab -e就可以了,默认的编辑器是VI编辑器。
好了,直接看例子吧,下面两个例子存贮在/etc/crontab文件中。第一个是用来在每天晚上备份/etc文件夹;第二个是用来运行Analog程序。
12 3 * * * root tar czf /usr/local/daily/etc.tar.gz /etc >> /dev/null 2>&1
52 5 * * * root /usr/local/src/analog-5.32-lh/analog >> /dev/null 2>&1
下面这个表详述了每个域的意义
Field
|
Meaning |
1 |
Minute (0 - 59) |
2 |
Hour (2 - 24) |
3 |
Day of month (1 - 31) |
4 |
Month (1 - 12, Jan, Fed, etc.) |
5 |
Day of week (0 - 6) 0 = Sunday, 1 = Monday etc. or Sun, Mon, etc. |
6 |
User that the command will run as |
7 |
Command to execute |
[*]是通配符,意思是忽略这个域。
现在解释第一个例子:
12 3 * * * root tar czf /usr/local/daily/etc.tar.gz /etc >> /dev/null 2>&1
上句将在每天3:12am运行 tar czf /usr/local/daily/etc.tar.gz /etc。>> /dev/null 2>&1的意思是将所有的标准输出都写入/dev/null (the linux trash can)中,并且将所有的标准错误也输入到/dev/null中,这样就可以是所有的输出都不直接输出在终端上。
再来一个复杂点儿的
30 15 13 6 1 * root tar czf /usr/local/daily/etc.tar.gz /etc >> /dev/null 2>&1
该例将在每周一,6月13,3:30am执行
也可以通过下面这种方式实现相同的目的:
30 15 13 Jun Mon * root tar czf /usr/local/daily/etc.tar.gz /etc >> /dev/null 2>&1
如果想使用Joey这个用户每小时的15分执行某条命令,可以这样:
15 * * * * Joey /usr/bin/somecommand >> /dev/null 2>&1
如果想每两小时执行某条命令,可以设置hour域为*/2,将在每天的2am, 4am, 6am, 8am, 10am, 12am, 2pm等执行
0 */2 * * * Joey /usr/bin/somecommand >> /dev/null 2>&1
如果想在一个域里设置多个时间点,可以使用逗号,如每小时过15分,30分执行
15,30 * * * * Joey /usr/bin/somecommand >> /dev/null 2>&1
如果想在每个月的第一周执行,可以在day域设置1-7,如下,将在每月的第一周每天的每两个小时过15分,30分执行,2:15,2:30,4:15等
15,30 */2 1-7 * * Joey /usr/bin/somecommand >> /dev/null 2>&1
如果你想批量运行一些脚本,可以将脚本放在一个文件夹里,如/home/usrname/cron,执行:
18 16 * * * root run-parts /home/usrname/cron >> /dev/null 2>&1
如果你想改变输出地址,可以将 >> /dev/null 2>&1 变为 >> /home/user/somecommand.log 2>&1
如果你想搞一个daily日志,可以这样 >> /opt/logs/`date +daily-\%Y\%m\%d-\%H-\%M-\%S.log` 2>&1,其中符号[`]是Tab键上面的那个键,不是单引号。
可以通过crontab -l查看所有设置好的schedule tasks
可以通过crontab -r删除crontab
可以通过crontab -e -u username在以某个用户运行
正如你所看到的,Cron是一个非常好的自动化工具。
分享到:
相关推荐
Cron是一种广泛使用的任务调度工具,它源自Unix操作系统,用于安排周期性的任务执行。Cron表达式是Cron系统的核心,它定义了任务的执行时间。在这个“Cron_cron_Cron表达式解析_”的资源中,我们将深入探讨Cron...
Vue-Cron是一款基于Vue.js开发的时间周期(Cron)表达式组件,用于在前端应用程序中创建、编辑和处理定时任务。Vue-Cron旨在提供一种直观的用户界面,让用户能够通过图形化的方式设置复杂的Cron表达式,从而实现定时...
C# Cron表达式解析在.NET开发中是一种常见且重要的任务,尤其在自动化任务调度和计划程序的场景下。Cron表达式源于Unix操作系统,用于定义周期性任务的执行时间。在C#中,通过理解并解析Cron表达式,开发者可以创建...
cron是Unix/Linux操作系统中的一个调度任务工具,用于设置周期性被执行的任务。它的名称来源于古英语单词"crone",象征时间的流转。在JavaScript中,我们可以利用类似cron的表达式来实现定时任务,例如通过`jquery-...
【Cron前端生成工具】是一种方便用户在前端环境中设置和管理Cron表达式的实用工具,类似于http://cron.qqe2.com/所提供的在线服务。Cron是Unix/Linux系统中的一种任务调度命令,允许用户预设定时任务,按照指定的...
cron表达式是Linux系统中用于设置周期性任务的工具,它是Cron Job的核心部分。这个“cron表达式自动生成”工具则提供了一种便捷的方式来创建这些复杂的表达式,尤其适合那些不熟悉cron语法或者需要快速设定定时任务...
Cron表达式是一种广泛用于计划任务调度的工具,它源于Unix系统,现在也被许多其他操作系统和编程语言支持,包括Java、Python、Node.js等。这种表达式定义了一种时间格式,用于描述周期性的任务执行时间。 Cron...
`node-cron`库允许在Node.js环境中创建`cron`定时任务,而`cron-parser`则提供了解析和验证`cron`表达式的能力。 总的来说,`js cron表达式生成器`是开发者不可或缺的工具,它简化了`cron`表达式的创建和管理,提高...
cron表达式是Unix/Linux系统中用于安排周期性任务的调度工具,它允许用户根据特定的时间间隔定义任务执行的计划。这个“cron表达式cron生成器”可能是为了简化cron表达式的创建过程而设计的一个在线工具或者软件,...
在layui中,我们可以引入第三方组件来扩展其原生功能,例如使用cron组件来处理定时任务的配置和展示。本文将详细介绍如何在layui项目中集成并使用cron第三方组件。 1. **安装cron组件** 在使用cron组件前,首先...
cron是Unix/Linux操作系统中的一个定时任务调度命令,用于设置周期性被执行的任务。在这个场景中,我们讨论的是一个基于Vue的Cron表达式组件,它允许用户在前端界面中动态生成和配置cron表达式。Vue.js是一个流行的...
Cron表达式是Quartz中一个核心的概念,用于定义定时任务的执行计划。 Cron表达式是由七个子表达式组成的字符串,每个子表达式代表不同的时间元素:秒、分钟、小时、日期、月份中的日期、月份和星期几。这些元素用...
Cron表达式是一种在计算机程序中广泛使用的定时任务调度工具,尤其在Java的Quartz框架中,它扮演着核心角色。Cron表达式允许我们用一种简洁的方式定义一系列的时间计划,比如每天的某个时间点执行某项任务。下面将...
《vixie-cron-4.1:CentOS下的crontab定时任务源代码解析》 在Linux系统中,crontab是用于设置周期性被执行的任务的工具,它源自著名的Unix系统工具cron。Vixie-cron是cron的一个实现版本,由Paul Vixie开发,广泛...
Java中的Cron表达式解析是Java开发者经常遇到的一项任务,特别是在构建定时任务或者调度系统时。Cron表达式源自Unix的crontab命令,用于设置周期性被执行的任务。它使用一组字符串来描述时间序列,包括秒、分钟、...
【标题】:Cron表达式解析 - 中英文对照 Cron表达式是Unix/Linux系统中的定时任务调度器Cron所使用的语法,也被广泛应用于Java世界,例如Quartz、Spring等框架。它允许用户以字符串的形式定义任务的执行时间,如...
Vue3 + ElementPlus Cron 组件是前端开发中的一个强大工具,它允许开发者在Web应用中实现复杂的定时任务调度功能。这个组件基于Vue3框架,并利用了ElementPlus UI库的组件和设计风格,为用户提供了友好的界面和丰富...
cron时间表达式是一种在Unix和类Unix系统中广泛使用的调度工具,用于安排任务在特定时间自动执行。在本文中,我们将深入探讨如何使用HTML页面来生成和验证cron表达式,以及与之相关的技术细节。 首先,`cron`是...
在.NET开发环境中,C#是一种常用的编程语言,而Cron表达式则是一种强大的定时任务调度工具,常用于Linux系统中的计划任务。然而,在C#中,我们也可以通过库来解析和使用Cron表达式,这使得.NET开发者也能利用Cron的...
Cron表达式是一种在Unix和类Unix系统中广泛使用的任务调度工具,用于设置定时任务。它基于特定的时间格式,允许用户定义精确到秒的任务执行计划。Cron表达式的语法复杂,但功能强大,可以实现从每日一次到每分钟一次...