`
terrencexu
  • 浏览: 121633 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Cron Help Guide

阅读更多

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是一个非常好的自动化工具。

5
0
分享到:
评论

相关推荐

    cron表达式cron生成器

    cron表达式cron生成器

    cron中英文表达式

    cron 表达式 包含 秒 分 时 天 月 年 粗浅的cron 表达式

    vue-cron_vue-cron_vuecrond组件_vuecron_

    vue-cron表达式组件

    Cron_cron_Cron表达式解析_

    基于C的Cron表达式解析,无需额外的库,直接代码实现,方便移植,稳定性可靠。

    WinForm Cron表达式生成器

    WinForm Cron表达式生成器 Quartz.Net Cron表达式生成器winform版  最近使用Quartz.net做了几个同步任务,感觉非常好。表达式设置也是非常灵活,但是新入手发现对表达式不熟,每次都要使用在线生成器。  于是写...

    Cron表达式验证工具

    Cron表达式写好了,不知道是否正确,如果执行间隔很长,根本没法测试,这个工具可以帮助你,他能输出所有的执行时间,你只需自己调整参数就行了,非常简单。提醒:目前常用的两个Cron表达式在线生成网站所提供的近期...

    cron表达式详解

    cron,cron表达式,cron表达式详解

    js解析cron表达式

    资源为js文件,下载后直接用script标签引入,需要解析时调用该js第一个方法,参数为cron定时器表达式字符串,例如:translateCRONToChinese("0 0 12 */1 * ?");

    java cron表达式生成器

    Java根据时间戳生成cron表达式,可传入时间范围灵活实现Cron基于日历形式的任务调度时间点,简单简洁,互用性强,可以灵活改动。

    Quartz的cron表达式

    Quartz的cron表达式。 Spring 定时任务@Scheduled cron表达式详解

    linux cron 工作原理

    cron 工作原理: cron 命令在系统启动时就由一个 shell 脚本自动启动,进入后台.首先会搜索 /var/spool/cron 目录, 寻找以 /etc/passwd 文件中的用户名命名的 crontab 文件并载入内存; cron 命令还会搜索 /etc/crontab...

    cron(动态生成cron表达式)

    基于Vue的Cron表达式组件,封装比较简单,没做组件优化,供大家参考 Installation 下载本项目 安装依赖包 npm install 运行 npm run dev

    Quartz_cron表达式

    quartz的作业调度触发Cron表达式说明

    js cron 表达式生成器

    cron 调度器 js cron表达式 生成秒循环 分循环 有开始日期结束日 最全面的cron表达式生成器 可嵌入html 网页 jsp asp等

    .net C# Cron表达式解析.

    .net C# Cron表达式解析..可以解析Cron表达式,有例子也有实现,希望能帮助到需要的人,

    操作系统安全:var spool cron.docx

    /var/spool/cron/ cron Cron服务 cron是Linux系统下一个自动执行指定任务的程序. cron服务要通过命令启动和停止,在Linux上可以通过/etc/init.d/crond脚本启动或停止. cron的配置方式 编辑/var/spool/cron目录下文件 ...

    cron表达式校验,验证是否是正确的cron表达式,调用的主方法是function cronValidate(cronExpre

    cron表达式校验,验证是否是正确的cron表达式,调用的主方法是function cronValidate(cronExpression )

    生成及验证Cron的html页面

    网络资源,生成、验证cron时间表达式的html页面,网络资源,生成、验证cron时间表达式的html页面网络资源,生成、验证cron时间表达式的html页面

    Cron表达式生成器html源码

    在线Cron表达式生成器html源码 quartz任务调度 Cron表达式 在线生成

    详细简单的cron表达式校验js

    cron表达式校验,验证是否是正确的cron表达式,调用的主方法是function cronValidate(cronExpression ),有需要可以看一下

Global site tag (gtag.js) - Google Analytics