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. 怎么查看和修改 MySQL 的最大连接数

    通常,mysql的最大连接数默认是100, 最大可以达到16384.1.查看最大连接数:show variables like '%max_connections%';2.修改最大连接数方法一:修改配 ...

  2. Java8新语言特性

    Java8简明指南 欢迎来到Java8简明指南.本教程将一步一步指导你通过所有新语言特性.由短而简单的代码示例,带你了解如何使用默认接口方法,lambda表达式,方法引用和可重复注解.本文的最后你会熟 ...

  3. 关于V1.6.0版本的项目总结

    10月28号,我们开了1.6项目的总结大会,包括Ting总在内,前端.后台.运维都来参加总结大会了.虽然目标基本达成,但同时也暴露出很多问题,我们希望各方能够坐下来总结一下自己或者各个相关团队的功过是 ...

  4. Kubernetes应用迁移问题定位

    这个帖子记录所有的应用迁移中遇到的问题. 关于镜像无法启动后无法定位问题 在原有的Dockerfile中修改,加入 RUN echo "aaa" > /etc/a.log C ...

  5. linux下使用C++ Json库

    安装Json库 1.下载JsonCpphttp://sourceforge.net/projects/jsoncpp/files/ 2.下载sconshttp://sourceforge.net/pr ...

  6. MySql 建库建表脚本

    1.建库 CREATE DATABASE test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 2.建表脚本 CREATE TABLE `c ...

  7. scala 内部类

    scala内部类不同于java内部类, java类中内部类从属于外部类,而scala的内部类从属于外部类对象 /** * 第一种方式 * 在内部类通过 外部类.this.成员名称 访问外部类成员 */ ...

  8. 突破防盗链机制:使用referrer-killer

    在开发it博客汇的过程中遇到一个难题:很多图片链接设置了防盗链机制,从我的网站请求图片会返回403错误,但直接在浏览器中打开图片的url时却又正常. 使用fiddler抓包发现,从我的网站请求图片会带 ...

  9. Lidgren Network Library

    Lidgren Network Library Classes   Class Description NetAESEncryption AES encryption NetBitVector Fix ...

  10. [Algorithm] Fibonacci problem by using Dynamic programming

    vThere are three ways to solve Fibonacci problem Recursion Memoize Bottom-up 'First Recursion approa ...