`
wangcheng
  • 浏览: 1460523 次
  • 性别: Icon_minigender_1
  • 来自: 青岛人在北京
社区版块
存档分类
最新评论

学习Cron

阅读更多

Cron是Linux内置的定时执行工具.

使用 ps -elf|grep cron 查看cron是否运行

如果服务没有启动,可使用下面的命令.

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

想了解cron 什么时候被唤醒开始运行它的任务,可以查看/etc/crontab

cat /etc/crontab

内容大概如下

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

每列的顺序表示:
[第一列] 分钟(0-59)
[第二列] 小时(0-23)
[第三列] 日期(1-31)
[第四列] 月份(1-12)
[第五列] 星期(从0-6 分别表示星期天到星期六)
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:

  1. #每天早晨6点执行。 '>>' 表示输出信息追加到/tmp/test.txt中   
  2. 0 6 * * * echo "Good morning." >> /tmp/test.txt    
  3.   
  4. #每两个小时执行   
  5. 0 */2 * * * echo "Hello World." >> /tmp/test.txt   
  6.   
  7. #每分钟执行一次   
  8. */1 * * * * echo "Hello World." >> /tmp/test.txt   
  9.   
  10. #每周(星期一,星期三,星期五)的早晨4:02分执行   
  11. 02 4 * * 1,3,5 echo "Hello World." >> /tmp/test.txt   
  12.   
  13. #每个月的4号和每周的周一到周三的早上11点执行   
  14. 0 11 4 * 1-3 echo "Hello World." >> /tmp/test.txt  

明白了时间设置格式,现在来设置cron服务

最常用的cron命令:
crontab -l     //显示已经存在的cron任务
crontab -e    //编辑某个用户的cron任务列表
crontab -u    //设定某个用户的cron服务
crontab -r     //删除某个用户的cron服务

下面是我使用cron的过程

首先用crontab -e 加入我的定时任务.(crontab -e 可以对提交的作业进行语法检查) , 这是一个类似 vi 的环境,输入

*/1 * * * * /home/myJava/mycode.sh

然后:x保存退出

接着用crontab -l 查看一下, 确认任务制定成功, 等了1分钟,却没有看到程序的log输出, 下面是mycode.sh

  1. /usr/local/ant/bin/ant -f /home/myJava/build.xml mytest  

 单独执行mycode.sh没有问题, 查看cron的运行日志

tail -f /var/log/cron

看到mycode.sh已经执行了, 在看看cron执行信息, cron会把任何输出都email到root的信箱.

tail -f /var/spool/mail/root

看到Error: JAVA_HOME is not defined correctly. We cannot execute java,

可使用 echo $JAVA_HOME 可以看到java home啊, 百度一下, 有人说cron里的命令必须都是绝对路径的.修改sh如下

  1. export JAVA_HOME=/usr/java/jdk1.5.0_07   
  2. /usr/local/ant/bin/ant -f /home/myJava/build.xml mytest  

OK, 数据库有新数据了, tail -f /var/spool/mail/root 也能看到ant的输出, 可java程序中用log4j打的log却没有

在网上没有找到好的解决方法, 暂时使用一个折中方式, 修改cron任务,把log输出到指定文件

  1. */1 * * * * /home/myJava/mycode.sh >> /home/myJava/myLog.log  

相关连接

http://www.chinaunix.net/jh/7/104984.html

http://blog.21club.cn/blog.php?uid-1-do-showone-tid-58-page-1.html

 

分享到:
评论
1 楼 wangcheng 2007-07-30  
Cron Help Guide
http://www.linuxhelp.net/guides/cron/

相关推荐

    Cron表达式前台源码

    对于学习Cron表达式和前端开发的人来说,这是一个宝贵的资源。 总的来说,Cron表达式是计划任务的核心工具,理解和掌握其工作原理对任何IT专业人员都是重要的。而百度cron生成器的源码则为学习者提供了实际操作和...

    cron表达式生成_html

    总的来说,这个“cron表达式生成_html”工具是开发者调试和学习cron表达式的一个便利工具,尤其对于那些在没有专业开发环境的条件下工作的开发者来说,它提供了一种轻量级的解决方案。通过这个工具,你可以快速创建...

    Cron_cron_Cron表达式解析_

    Cron是一种广泛使用的任务调度工具,它源自Unix操作系统,用于安排周期性的任务执行。...通过学习和应用这个C语言的实现,开发者可以获得对Cron工作原理的深入了解,并具备在不同环境中自定义调度功能的能力。

    C# Cron表达式解析 .net

    在提供的压缩包文件中,"Q.Study.rar"可能是包含学习资料或示例项目,而"cronnet-code-5.zip"很可能包含了一个C#实现Cron表达式解析的代码示例。这个代码实现可能包括了将Cron字符串转换为DateTime对象,或者根据...

    Cron表达式Html源码

    通过这个压缩包文件中的"Cron表达式Html源码",我们可以学习如何在Web环境下构建类似的工具,包括前端的用户交互逻辑、后端的Cron解析算法,以及整个系统的架构设计。这对于理解和实践Web应用开发,尤其是与时间相关...

    Cron前端生成工具

    通过查看和学习这些文件,开发者可以深入理解工具的工作原理,甚至对其进行定制或扩展,以满足更复杂的需求。例如,添加新的语言支持、改进用户界面或者增加对其他定时任务系统的兼容性。如果你是开发者,研究这些...

    cron表达式cron生成器

    如果要深入学习或自定义这个工具,可以查看这些源代码文件。 总的来说,cron表达式是系统管理中的一个重要工具,而cron生成器则是简化其使用的一种辅助手段。通过这个生成器,用户可以更轻松地创建复杂的定时任务,...

    cron(动态生成cron表达式)

    cron是Unix/Linux操作...通过学习和使用这样的组件,你可以提升用户体验,同时减少在后端处理cron表达式的工作负担。在实际项目中,可以结合其他工具,如数据库存储、WebSocket推送等,构建出完整的定时任务管理系统。

    Cron生成表达式html源码

    对于希望自定义或学习如何构建此类工具的开发者来说,这是一个宝贵的资源。通过分析这些源码,可以了解如何将用户交互转化为Cron表达式,以及如何实现可视化预览和解析逻辑。 总的来说,Cron表达式生成器HTML源码是...

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

    这对于开发者来说,无论是学习还是在多语言环境下工作,都是极其宝贵的参考资料。 【标签】:“java cron 翻译为中英文”表明了这个压缩包的内容与Java中的Cron表达式有关,并且已经进行了双语翻译,方便不同语言...

    vixie-cron-4.1.rar_centos-s002_crontab source code_vixie-cron_vi

    《vixie-cron-4.1:CentOS下的crontab定时任务源代码...通过对源代码的学习,我们可以更深入地理解其工作原理,更好地利用它来管理和维护系统的自动化任务。同时,了解其内在的安全机制也有助于提高系统的整体安全性。

    Java 写的Cron表达式解析

    如果要深入学习或修改这个项目,你需要查看代码来了解它的实现细节,包括如何处理用户输入、如何解析和验证Cron表达式,以及如何在Swing界面中展示这些信息。 总结起来,Java中的Cron表达式解析涉及到字符串处理、...

    Cron表达式生成器.zip可反向解析

    它使任何人都能方便地创建和管理定时任务,而无需深入学习复杂的Cron语法。此外,这个工具还特别适合开发者调试和验证Cron表达式,提高了工作效率。 总的来说,"Cron表达式生成器"是管理和操作Cron任务的一个强大...

    Cron表达式生成器html源码

    - 教育:对于初学者来说,这是一个很好的学习工具,可以帮助理解Cron表达式的语法和功能。 - 开发:开发人员可以在没有立即理解完整表达式的情况下快速生成和测试定时任务。 - 测试:在系统测试中,生成器可以...

    cron可视化前端界面.zip

    cron表达式是Linux系统中广泛使用的定时任务调度工具,它允许用户定义周期性的任务执行计划。...通过深入研究这个项目,我们可以学习到cron表达式、JavaScript编程、前端开发框架以及相关库的使用。

    Cron表达式选择器JS插件

    通过查看和学习这个示例,你可以更好地理解如何在自己的项目中应用。 ### 应用场景 - **计划任务管理**:在Web应用程序中,允许用户自定义定时任务的执行频率。 - **自动化配置**:在设置页面中,让用户配置自动化...

    winform版Cron源代码

    【标题】"winform版Cron源代码"指的是在...开发者可以借此学习如何在C#的Winform环境下集成Quartz.NET,以及如何处理Cron表达式的解析和应用。这对于需要在特定时间执行操作的.NET开发者来说是非常有价值的资源。

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

    同时,对于不熟悉cron语法的开发者来说,这是一个很好的学习工具,可以通过直观的操作了解cron表达式的结构和含义。 总结来说,"Cron表达式生成器java版"是一个实用的开发辅助工具,尤其对于需要频繁使用cron表达式...

    cron-learn:cron库的原始码学习

    在这个“cron-learn”项目中,我们将会深入学习cron库的源码,理解其工作原理和实现机制。 一、cron库的基础概念 cron库是Linux系统中的核心组件之一,它负责解析并执行crontab文件中的定时任务。crontab文件包含了...

    CronExpression一个cron表达式解析器

    cron表达式是Linux系统中广泛使用的定时任务调度机制,它允许用户按照特定的时间间隔执行任务。在PHP开发中,为了实现类似的功能,...同时,对源代码的学习也能帮助开发者提升编程技能,更好地理解时间调度的底层逻辑。

Global site tag (gtag.js) - Google Analytics