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
内容大概如下
-
- 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
每列的顺序表示:
[第一列] 分钟(0-59)
[第二列] 小时(0-23)
[第三列] 日期(1-31)
[第四列] 月份(1-12)
[第五列] 星期(从0-6 分别表示星期天到星期六)
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:
-
- 0 6 * * * echo "Good morning." >> /tmp/test.txt
-
-
- 0 */2 * * * echo "Hello World." >> /tmp/test.txt
-
-
- */1 * * * * echo "Hello World." >> /tmp/test.txt
-
-
- 02 4 * * 1,3,5 echo "Hello World." >> /tmp/test.txt
-
-
- 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
- /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如下
- export JAVA_HOME=/usr/java/jdk1.5.0_07
- /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 * * * * /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
分享到:
相关推荐
PostgreSQL的学习心得和知识总结(四十五)|关于PostgreSQL数据库开源作业调度扩展 pg_cron 默认GMT时区修改 的实现方案
定时学习 cron库的原始码学习
【cron定时脚本】定时执行程序的cron了解一下
quartz定时任务cron表达式,可以学习下!!!!!!!
关于Cron命令的一些详细解释,有些摘自于网络,汇总一下,希望对学习该命令的朋友有帮组。
cron表达式规则,希望可以帮助大家学习和工作!
这个是用C#开发的CRON表达式的代码例子,可以用来学习CRON的生成及每个部分的意思。
Spring给程序猿们带来了许多便利。下面这篇文章主要给大家介绍了关于Spring @Scheduler使用cron表达式时的执行问题的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
如果 Web 应用程序中的一个特性需要超过 1 秒或 2 秒才能完成,那么应该怎么办?需要某种离线处理解决方案。学习几种对 PHP 应用程序中长时间运行的作业进行离线服务的方法。
主要介绍了Golang Cron 定时任务的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
本文给大家介绍linux cron计划任务常用符号小结,感兴趣的朋友跟着小编一起学习吧
cron-jobs
最近学习Kubernetes碰到Job和CronJob,在这里总结记录一下。 Job Job控制器也是Kubernetes中的一个重要的控制器资源,但是它和Deployment、DaemonSet不同的是:Job控制器用于调配pod对象中的运行一次性的任务。 在...
主要介绍了springtask 的使用方法和 cron 表达式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Google Cloud Platform上的数据科学:实施端到端实时数据管道:从提取到机器学习。 “ O'Reilly Media,Inc.”。 手动将ETL转换为大查询 下载 获取标题的变量列表 varlist中:FL_DATE,OP_UNIQUE_CARRIER,OP_...
本手册来自http://linux.chinaitlab.com 由我整理成.chm格式,以方便大家交流学习
主要给大家介绍了关于Go语言中定时器cron使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
Web Historian - Archive.org 克隆这是我在学习期间在为期两天的 sprint 中完成的一个项目。 这个应用程序是用一对构建的,使用 vanilla Node(http 模块、fs 模块、url 模块和路径模块)和 CRON。 该项目的目标是...
它使用包含要学习的内容的用户创建的文本文件(或多个文件),然后以用户定义的时间间隔(由 Linux 上的 Cron 安排)打开一个弹出窗口来测试用户。 该窗口的左侧包含要定义或翻译的单词,右侧包含供用户输入答案的...
一种用于从Google云端硬盘自动下载文档的工具,例如人们正在使用的电子表格,您希望将其同步到学习驱动器。 建立 基于 首先,转到快速入门,为您的wisc.edu Google帐户启用Drive API。 这将使您选择一个名称。 对于...