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. HDU 4634 Swipe Bo (2013多校4 1003 搜索)

    Swipe Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  2. IntelliJ IDEA的几种常见的快捷键

    在编写代码的时候直接输入psv就会看到一个psvm的提示,此时点击tab键一个main方法就写好了. psvm 也就是public static void main的首字母. 依次还有在方法体内键入f ...

  3. redux状态管理和react-redux的结合使用

    一:调试 注意:Redux调试工具.谷歌中搜redux同理react 新建store的时候判断window.devToolsExtension使用compose(组合函数)结合thunk插件和wind ...

  4. PostgreSQL配置文件--日志和错误

    6 错误操作和日志 ERROR REPORTING AND LOGGING 6.1 日志写到哪里 Where to Log 6.1.1 log_destination 字符串 默认: log_dest ...

  5. daemon函数的原理及使用详解

    在linux系统下创建守护进程的原理及步骤在文章(链接如下)中介绍过.http://blog168.chinaunix.net/space.php?uid=20196318&do=blog&a ...

  6. tracepath 路由跟踪命令

    [root@c1 scripts]# tracepath 100.2.4.144    (备注:linux系统) 1: c1.nulige.com (100.2.4.144) 0.047ms pmtu ...

  7. 一个手绘normal的方法

    https://polycount.com/discussion/98983/how-to-paint-flow-anisotropic-comb-maps-in-photoshop flow map ...

  8. 如何使用angularjs实现表单验证

    <!DOCTYPE html> <html ng-app="myApp"> <head> <title>angularjs-vali ...

  9. vue - config(dev.env.js和prov.env.js)

    描述:配置产品模式.打包模式:开发还是打包,以最佳运行(不配置则有一个大大的Warning!!!) 官网:https://www.webpackjs.com/concepts/mode/

  10. vue - webpack.dev.conf.js for HtmlWebpackPlugin

    描述: 这是一个webpack插件,可以简化HTML文件的创建,为您的webpack捆绑服务提供服务. 这对于webpack包含文件名中包含哈希值的bundle 来说尤其有用,它会更改每个编译. 您可 ...