1.Cron的启动与关闭

因为Cron是Linux的内置服务。能够用下面的方法启动.关闭这个服务:

/sbin/service crond start           //启动服务

/sbin/service crond stop            //关闭服务

/sbin/service crond restart        //重新启动服务

/sbin/service crond reload         //又一次加载配置

2.Cron配置文件

2.1全局配置文件

crontab在/etc文件夹以下存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五个文件夹和crontab,cron.deny二个文件.

cron.daily是每天运行一次的job,cron.weekly是每一个星期运行一次的job.cron.monthly是每月运行一次的job,cron.hourly是每一个小时运行一次的job.cron.d是系统自己主动定期须要做的任务,可是又不是按小时,按天,按星期,按月来运行的,那么就放在这个文件夹以下.

/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

我们可在此文件里加入自己须要的cron job.

/etc/cron.deny文件就是用于控制不让哪些用户使用Crontab的功能.

2.2用户配置文件

每一个用户都有自己的cron配置文件,通过crontab -e 就能够编辑,普通情况下我们编辑好用户的cron配置文件保存退出后,系统会自己主动就存放于/var/spool/cron/文件夹中,文件以username命名.

linux的cron服务是每隔一分钟去读取一次/var/spool/cron,/etc/crontab,/etc/cron.d以下全部的内容.

3.Cron命令格式

crontab [ -u user ] 文件 

crontab [ -u user ] { -l | -r | -e }

-u:指定某一用户

-e:运行文字编辑器来设定用户(当前用户或指定用户)时程表,内定的文字编辑器是vi.

-r:删除用户时程表.

-l:列出用户时程表.

4.Cron文件格式

*  *  *  *  *  command

分 时 日 月 周   命令

第1列表示分钟1~59, 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要执行的命令

5.Cron文件使用说明

5.1 普通情况

当f1 为 * 时表示每分钟都要运行 program,f2 为 * 时表示每小时都要运行程序,其余类推.

* * * * * /bin/usershell  每天每分钟运行一次/bin/usershell

当f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要运行,f2 为 a-b 时表示从第 a 到第 b 小时都要运行,其余类推.

0-12 * * * * /bin/usershell  每天每小时从0到12分钟每分钟运行一次/bin/usershell

当f1 为 */n 时表示每 n 分钟个时间间隔运行一次,f2 为 */n 表示每 n 小时个时间间隔运行一次,其余类推.

* */2 * * * /bin/usershell  每天每2小时运行一次/bin/usershell

当f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要运行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要运行,其余类推.

* 1,3,5,7 * * * /bin/usershell  每天每逢1,3,4,7点运行一次/bin/usershell

5.2. 冲突逻辑

日期能够用月限定,也能够用“星期”指定,假设两个段有冲突,那么,第六段的命令将在匹配不论什么一个的情况下都执行,比方

"30 4 1,15 * 5",将在每月的1号和15号加每一个周五,上午4:30执行.

5.3. 符号"%"

"%"在Cron文件里,有"结束命令行","换行","重定向"的作用,假如不须要"%"的特殊作用,须要使用转义符转义.

5.4. @reboot

这个不须要理解,为了达到在开机后执行,且仅仅执行一次的目的.除了这个,也无法通过前五段的设置来实现.

@annually也是这个功能.

至于@yearly,@monthly等等事实上都能够用上面的五段来设置.

然后我自己写了一个小样例做了下測试:

使用crontab -e进行编辑,内容为:

*/2 * * * * echo "i am crontab" >> /home/zhang/hello

这样隔两分钟就会往hello这个文件中写i am crontab

我自己写了一个脚本task.sh,直接执行task.sh时能够执行,但是加到crontab里就有执行了,后来我查看了网上的解决方法,最终攻克了,先来看一下我原来写的task.sh脚本吧:

#!/bin/sh

java -jar offergateway.biz.offer-1.0-SNAPSHOT.jar

crontab定时任务的写法为:

* * * * *  /task.sh

后来我查了网上说要执行crontab,必须使用绝对路径,然后我把路径都改成绝对路径了。

在crontab的运行环境变量中,没有对应用户设置的环境变量。你须要手动设置一下环境变量。才干让它生效。

于是我把上面的脚本改成:

#!/bin/sh

. /etc/profile

java -jar /home/zhang/offergateway.biz.offer-1.0-SNAPSHOT.jar

crontab也改成绝对路径:

* * * * *  sh /home/zhang/task.sh

哈哈,成功了~~happy~~

原文出自:http://li200429.iteye.com/blog/1608758

Centos下运行定时任务Crontab命令介绍的更多相关文章

  1. 【转帖】Linux定时任务Crontab命令详解

    Linux定时任务Crontab命令详解 https://www.cnblogs.com/intval/p/5763929.html 知道有crontab 以及 at 命令 改天仔细学习一下 讲sys ...

  2. Linux定时任务Crontab命令详解_转

    转自:Linux定时任务Crontab命令详解 (部分修改) linux 定时系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服 ...

  3. centos下yum安装crontab+mysql自动备份

    参考博文: centos下yum安装crontab yum install vixie-cron crontabs      //安装 chkconfig crond on               ...

  4. 在Ubuntu下运行 apt-get update命令后出现错误:

    在Ubuntu下运行 apt-get update命令后出现错误: The package lists or status file could not be parsed or opened sud ...

  5. CentOS下crond定时任务详细介绍

    目录 1.定时任务crond介绍... 2.crond定时任务限权... 3.Crontab用法... 4.Crontab命令的书写格式... 5.定时服务器时间同步... 6.写定时任务注意点.. ...

  6. CentOS 下运行Docker 内执行 docker build 命令的简单方法

    1. 通过部分文档进行学习...主要知识来源 https://blog.csdn.net/shida_csdn/article/details/79812817 2. 下载 docker 的rpm包. ...

  7. Linux 定时任务 Crontab命令 详解

    前言 crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比 ...

  8. 定时任务 Crontab命令 详解

    crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用 crontab,那么任务就是常驻程序,这对你的程序要求比较高 ...

  9. Linux 设置定时任务crontab命令

    1.  crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...

随机推荐

  1. 关于applicationContext.xml cannot be opened because it does not exist的解决

    初学Spring在用Resource rs=new ClassPathResource("applicationContext.xml");时老是遇到这个错误.后来发现用 Appl ...

  2. winform 中设置窗体的默认焦点

    转载:http://www.cnblogs.com/weekzero/p/3504513.html winform的窗体中,有时候需要设置默认焦点,有时候需要取消默认焦点. 设置默认焦点,最简单的方法 ...

  3. SpringMVC中拦截器的使用

    什么是拦截器 拦截器通常一般指的是通过拦截从浏览器发往服务器的一些请求来完成某些功能的一段程序代码一般在一个请求发生之前,发生时,发生后我们都可以对请求进行拦截 拦截器可以做什么 拦截器可以用于权限验 ...

  4. log4j设置,以及中文乱码,通过过滤器输出指定级别的日志,或者指定级别范围的日志

    配置文件为默认名字log4j.properties时,放在某个模块下的resources下即可,即使有多个模块的情况下,任意一个模块的resources下有这个默认名字的文件log4j.propert ...

  5. 如何在sublime3项目设置中设置python模块的搜索路径?ImportError: No module named *的解决办法

    问题:之前使用pycharm,用的挺溜,但是电脑配置实在不争气,pycharm启动久了,耗去大量内存,导致运行起来越来越慢,于是转向使用sublime text. 把项目从pycharm切换到subl ...

  6. 接口测试框架开发(三):maven+restAssured+Excel(jxl)+testng+extentreports的接口自动化

    1.http://www.cnblogs.com/lin-123/p/7151031.html 2.http://www.cnblogs.com/lin-123/p/7151046.html 3.ht ...

  7. dubbo-monitor安装监控中心,管理控制台安装网页一直访问不到,解决bug的方式记录

    问题再现 第一步,重启机器 第二步,按照dubbo-monitor需要开启的服务,顺序逐一进行启动,之前的推翻全部重新再走一遍就通了,千万不能死磕...很浪费时间.... 通过打印日志追踪问题的所在. ...

  8. Direcshow中视频捕捉和參数设置报告

    Direcshow中视频捕捉和參数设置报告 1.      关于视频捕捉(About Video Capture in Dshow) 1视频捕捉Graph的构建 一个能够捕捉音频或者视频的graph图 ...

  9. Game Center Achievements and Leaderboards part 1 <转>

    原地址:http://blog.sina.com.cn/s/blog_6b3661a901013xb0.html This is the first part of a step-by-step tu ...

  10. 用Java axis2调用.net平台的Webservice出现的一些问题

    问题1: AxisFault faultCode: {http://schemas.microsoft.com/ws/2005/05/addressing/none}ActionNotSupporte ...