`
chenlb
  • 浏览: 693296 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

cron 用法

阅读更多
我用CentOS为例。

简介:
    cron来源于希腊单词chronos(意为“时间”),是linux系统下一个自动执行指定任务的程序。例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行。

CentOS的cron默认是开机启动的,如果没有开机启动可以用chkconfig
[root@chenlb-pc ~]# chkconfig crond on

查看crond是否开机启动
[root@chenlb-pc ~]# chkconfig --list crond
crond           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

说明已经是开机启动。

cron是执行crontab里的任务,所以要把任务加到crontab里。

1.查看当前用户的任务。
[chenlb@chenlb-pc ~]$ crontab -l
no crontab 
for chenlb

现在还没有任务,可以用crontab -e来编辑任务(可以直接输入crontab是新建,然后回车,Ctrl+D保存,注意这样会覆盖以前的,不建议直接用crontab),然后再新的文件里输入以下内容。

2.编辑任务
[chenlb@chenlb-pc ~]$ crontab -e

*/1 * * * * echo `date` >> /home/chenlb/cron-log.txt

上面的意思是指每一分钟打印时间放到/home/chenlb/cron-log.txt文件里,过一分钟后看是否有效,如下命令。
[chenlb@chenlb-pc ~]$ tail /home/chenlb/cron-log.txt
Wed Jul 
2 15:43:01 CST 2008

3.删除任务
[chenlb@chenlb-pc ~]$ crontab -r


说明:如果是root除了有以上的功能,还有-u参数为用户查看、编辑、删除任务,如用chenlb编辑任务。
[root@chenlb-pc ~]# crontab -u chenlb -e

解说下任务的语法:
    min hour day month week user command

忽略用“*”,每多少的用“/多少”,多个的用“,”,到关系的用“-”

---------------------------------来自htmlor's blog的示例----------------------------------------------

以下是cron语句中的字段与字段说明:

字段 说明
1 分钟(0-59)
2 小时(2-24)
3 日期(1-31)
4 月份(1-12;或英文缩写Jan、Feb等)
5 周几(0-6,0为周日;或单词缩写Sun、Mon等)
6 用户名(执行命令时以此用户的身份)
7 要执行的命令(路径)

现在来看第一行:

12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1

这条语句将在每天的凌晨3点12分(03:12)运行 tar czf /usr/local/backups/daily/etc.tar.gz /etc 命令。>> /dev/null 2>&1 表示把所有标准输出发送到 /dev/null(linux的回收站),把标准错误输出(2)发送到和标准输出(1)同样的地方(即 /dev/null)。运行这行命令将不会产生任何输出。

这条语句可以变得稍微复杂一点:

30 15 13 6 1 * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1

它将在6月13日周一的15:30运行 tar czf /usr/local/backups/daily/etc.tar.gz /etc 命令。

以下语句可以达到同样的效果:

30 15 13 Jun Mon * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1

如果你想以用户joey的身份每小时的第15分钟运行某个程序,可以使用:

15 * * * * joey /usr/bin/somecommand >> /dev/null 2>&1

其中的星号(*)是通配符,表示cron将忽略这个字段。

如果你想每两小时就运行某个程序,可以在小时字段里使用 */2。它将会在2点,4点,6点……22点,24点运行。具体语句如下:

0 */2 * * * joey /usr/bin/somecommand >> /dev/null 2>&1

cron语句中还可以使用逗号(,)来指定多个时间。例如你想在每小时的15分和30分运行某个程序,可以在分钟字段使用 15,30

15,30 * * * * joey /usr/bin/somecommand >> /dev/null 2>&1

如果你想在每月的第一周(即1号到7号)每天的指定时间运行某个程序,可以在日期字段使用 1-7

15,30 */2 1-7 * * joey /usr/bin/somecommand >> /dev/null 2>&1

这条语句将在每月的第1-7日每两小时的15分和30分(02:15,02:30……22: 15,22:30等)运行 /usr/bin/somecommand 命令。

如果你想在每天的16:18执行一个脚本集合,可以把所有要执行的脚本放到一个目录中(如 /home/username/cron),可以使用:

18 16 * * * root run-parts /home/username/cron >> /dev/null 2>&1

如果你想保存某个程序的输出结果, 可以把 >> /dev/null 2>&1 替换为 >> /home/user/somecommand.log 2>&1



参考:http://blog.htmlor.com/2006/07/25/cron_guide/
分享到:
评论

相关推荐

    Cron前端生成工具

    了解并熟练使用Cron前端生成工具,有助于提升开发效率,尤其是当需要设置多个定时任务时。它可以帮助我们避免因语法错误导致的任务执行失败,同时简化了在各种项目和环境中部署定时任务的过程。 在压缩包文件中,...

    layui第三方组件cron的使用

    如果需要根据其他条件动态改变cron选择器的配置,可以使用`cron.config()`方法: ```javascript cron.config({ elem: '#cronDemo', disableMinute: true //禁用分钟选择 }); ``` 通过以上步骤,你可以在...

    C# Cron表达式解析 .net

    标签中提到的"Cron.dll"可能是一个这样的库,但具体使用方法需要查看库的文档或源码。 在提供的压缩包文件中,"Q.Study.rar"可能是包含学习资料或示例项目,而"cronnet-code-5.zip"很可能包含了一个C#实现Cron...

    Cron表达式解析 翻译为中英文.zip

    Cron表达式是Unix/Linux系统中的定时任务调度器Cron所使用的语法,也被广泛应用于Java世界,例如Quartz、Spring等框架。它允许用户以字符串的形式定义任务的执行时间,如分钟、小时、日期等。这个压缩包文件包含了对...

    .net C# Cron表达式解析.

    - 使用静态方法`CronExpression.Parse("你的Cron表达式")`解析表达式,得到CronExpression对象。 - 通过`NextOccurrences(DateTime now)`或`GetNextOccurrence(DateTime now)`方法,获取下一个触发时间点。 在...

    AIX下的cron使用小结

    #### 三、crontab 命令及使用方法 **1. crontab 命令语法** crontab 命令的基本语法如下: ```bash crontab [-e[UserName]|-l[UserName]|-r[UserName] |-v[UserName]|File] ``` 其中: - `-e`:编辑当前用户的 ...

    Cron表达式选择器JS插件

    ### 插件使用方法 1. **引入资源**:首先,你需要在HTML文件中引入BootStrap的CSS和JS文件,以及Cron表达式选择器的JS文件。通常,这些文件会从CDN或本地文件系统加载。 2. **HTML结构**:创建一个基础的BootStrap...

    winform版Cron源代码

    总的来说,这个源代码项目提供了一种在Windows桌面应用程序中利用Cron表达式进行任务调度的方法。开发者可以借此学习如何在C#的Winform环境下集成Quartz.NET,以及如何处理Cron表达式的解析和应用。这对于需要在特定...

    Cron表达式生成器java版(需要jdk1.8)

    Spring框架中的`@Scheduled`注解则提供了声明式的方法来定时执行任务,只需在方法上添加该注解并提供cron表达式即可。 对于这个"Cron表达式生成器java版"项目,其内部可能包含了一个解析用户输入并生成合法cron字符...

    cron可视化前端界面.zip

    用户在界面上输入cron表达式后,前端应用会调用`later.js`的方法来解析表达式,然后计算出最近的执行时间并显示在界面上。这通常涉及到JavaScript的日期对象(Date)的操作,以及可能的时间差计算。 在实际应用中,...

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

    cron表达式是Unix/Linux系统中用于设置定时任务的一种标准格式,它允许用户按照特定的时间间隔或特定时间点执行任务。在Java、JavaScript等编程语言中,我们也可以利用cron表达式来实现定时任务的功能。`...

    react+ts+antd cron表达式组件

    5. 状态管理:使用React的状态管理和生命周期方法,保持组件状态的一致性。 6. 样式:Ant Design的CSS类会被应用到组件上,提供一致且美观的外观。 开发这样一个组件,开发者需要熟悉React的组件化思想,理解...

    CronExpression一个cron表达式解析器

    cron表达式是Linux系统中广泛使用的定时任务调度机制,它允许用户按照特定的时间间隔执行任务。在PHP开发中,为了实现类似的功能,开发者通常会利用像CronExpression这样的库来解析和处理cron表达式。本文将深入探讨...

    前端开源库-node-cron

    通常,源码中会包含测试用例、文档和示例,这些都能帮助你更好地掌握`node-cron`的使用方法。 总的来说,`node-cron` 是一个强大的前端开源库,它简化了Node.js环境下的定时任务编程,让开发者能够更专注于业务逻辑...

    Linux Cron表达式解析

    Cron表达式的一些特殊字符和用法: - 星号(*):代表所有可能的值,例如`* * * * * *`表示每秒执行一次。 - 范围:如`10-12`表示10点到12点。 - 列表:使用逗号分隔,如`1,5,10`表示第1、5和10分钟执行。 - 步进值...

    Go-gocron-使用Go语言开发的轻量级定时任务集中调度和管理系统

    在压缩包文件"ouqiang-gocron-9f9c663"中,可能包含了gocron的源代码、示例、文档或测试用例,你可以通过查看这些内容来更深入地理解gocron的工作原理和使用方法。此外,通过阅读源代码,你还可以学习到Go语言的并发...

    cron定时任务表达式组件(vue3+ts+naiveUI)

    3.需要传的值,maxHeight="450px"//最大高, @changeCron="changeCron"//方法,:cronValue="cronValue"//cron表达式, :showCronModal="showCronModal"//打开弹框,style="flex: 0.25"//样式 4.// cron子组件传的...

    linux任务计划cron文档使用

    ### Linux任务计划Cron文档使用详解 #### 一、Cron简介与基本操作 Cron是Linux系统中用于执行周期性任务的一种守护进程。通过Cron可以方便地安排...掌握Cron的使用方法对于Linux系统管理员来说是非常重要的技能之一。

    定时任务cron 解析为中文.docx

    `CronExpParserUtil`的核心方法是`translateToChinese`,它接受一个cron表达式字符串作为输入,并返回该表达式的中文解释。在方法中,首先通过`Assert.hasText`和`CronExpression.isValidExpression`进行参数校验,...

    Cron表达式生成工具

    使用"Cron表达式生成工具",开发者可以直观地选择时间单位的值,工具会自动生成对应的Cron表达式。这极大地简化了任务调度的配置过程,避免手动编写复杂的字符串可能导致的错误。 工具可能包含以下功能: - 选择...

Global site tag (gtag.js) - Google Analytics