crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活。crond 常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

一、安装

  1. [root@CentOS ~]# yum -y install vixie-cron
  2. [root@CentOS ~]# yum -y install crontabs

说明:
vixie-cron 软件包是 cron 的主程序;
crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

新增调度任务可用两种方法:

  1. 1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
  2. 2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

查看调度任务

  1. crontab -l //列出当前的所有调度任务
  2. crontab -l -u jp //列出用户jp的所有调度任务

二、配置

cron 是 linux 的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

  1. service crond start //启动服务
  2. service crond stop //关闭服务
  3. service crond restart //重启服务
  4. service crond reload //重新载入配置
  5. service crond status //查看crontab服务状态

在CentOS系统中加入开机自动启动:

  1. chkconfig --level 345 crond on

cron 的主配置文件是 /etc/crontab,它包括下面几行:

  1. SHELL=/bin/bash
  2. PATH=/sbin:/bin:/usr/sbin:/usr/bin
  3. MAILTO=root
  4. HOME=/
  5. # run-parts
  6. 01 * * * * root run-parts /etc/cron.hourly
  7. 02 4 * * * root run-parts /etc/cron.daily
  8. 22 4 * * 0 root run-parts /etc/cron.weekly
  9. 42 4 1 * * root run-parts /etc/cron.monthly

前四行是用来配置 cron 任务运行环境的变量。
SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell);
PATH 变量定义用来执行命令的路径。
cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。
如果 MAILTO 变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出。
HOME 变量可以用来设置在执行命令或脚本时使用的主目录。

限制对 cron 的使用:

/etc/cron.allow/etc/cron.deny 文件被用来限制对 cron 的使用。
这两个使用控制文件的格式都是每行一个用户。
两个文件都不允许空格。
如果使用控制文件被修改了,cron 守护进程(crond)不必被重启。
使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。

无论使用控制文件中的规定如何,root 都总是可以使用 cron。

如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。
如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。

三、crontab 命令

功能:设置计时器。

语法

  1. crontab[-u <用户名称>][配置文件] crontab [-u <用户名称>][-elr]

解释:cron 是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:Minute Hour Day Month DayOFWeek Command

参数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称>  指定要设定计时器的用户名称。

格式:

  1. * *  *  *  *  command
  2. 分 时 日 月 周  命令
  3.  
  4. 1列表示分钟159 每分钟用*或者 */1表示
  5. 2列表示小时1230表示0点)
  6. 3列表示日期131
  7. 4列表示月份112
  8. 5列标识号星期060表示星期天)
  9. 6列要运行的命令

几个特殊符号的含义:

“*”代表取值范围内的数字,
         “/”代表”每”,
         “-”代表从某个数字到某个数字,
         “,”分开几个离散的数字

  1.  

例子:

  1. 30 21 * * * /usr/local/etc/rc.d/lighttpd restart
  2. 上面的例子表示每晚的21:30重启apache
  3.  
  4. 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
  5. 上面的例子表示每月11022日的4 : 45重启apache
  6.  
  7. 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
  8. 上面的例子表示每周六、周日的1 : 10重启apache
  9.  
  10. 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
  11. 上面的例子表示在每天18 : 0023 : 00之间每隔30分钟重启apache
  12.  
  13. 0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
  14. 上面的例子表示每星期六的11 : 00 pm重启apache
  15.  
  16. * */1 * * * /usr/local/etc/rc.d/lighttpd restart
  17. 每一小时重启apache
  18.  
  19. * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
  20. 晚上11点到早上7点之间,每隔一小时重启apache
  21.  
  22. 0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
  23. 每月的4号与每周一到周三的11点重启apache
  24.  
  25. 0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
  26. 一月一号的4点重启apache
  27.  
  28. */30 * * * * /usr/sbin/ntpdate 210.72.145.44
  29. 每半小时同步一下时间

键入 crontab  -e 编辑crontab服务文件

例如 文件内容如下:

  1. */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
  2. 保存文件并并退出
  3. */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
  4. */2 * * * * 通过这段字段可以设定什么时候执行脚本
  5. /bin/sh /home/admin/jiaoben/buy/deleteFile.sh 这一字段可以设定你要执行的脚本,这里要注意一下bin/sh 是指运行 脚本的命令 后面一段时指脚本存放的路径

查看该用户下的crontab服务是否创建成功, 用 crontab  -l 命令

查看服务是否已经运行用 ps -ax | grep cron

  1. crontab file [-u user]-用指定的文件替代目前的crontab
  2.  
  3. crontab-[-u user]-用标准输入替代目前的crontab.
  4.  
  5. crontab-1[user]-列出用户目前的crontab.
  6.  
  7. crontab-e[user]-编辑用户目前的crontab.
  8.  
  9. crontab-d[user]-删除用户目前的crontab.
  10.  
  11. crontab-c dir- 指定crontab的目录。
  12.  
  13. crontab文件的格式:M H D m d cmd.

linux-crontab定时任务的更多相关文章

  1. 【Python】Linux crontab定时任务配置方法(详解)

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

  2. Linux crontab 定时任务

    http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html 19. crontab 定时任务 通过crontab 命令,我们 ...

  3. linux crontab 定时任务解析

    -----------crontab定时任务---------------------- 检查crontab工具是否安装 crontab -l 检查crontab服务是否启动 service cron ...

  4. Linux crontab 定时任务命令详解

    一.简介 crontab 命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于 crontab 文件中,以供之后读取和执行.通常,crontab 储存的指令被守护进程激活, cr ...

  5. linux crontab定时任务运行shell脚本(shell执行sql文件)

    https://www.cnblogs.com/tiankongjava/p/6106743.html 今天做个linux定时任务(每晚12点把表汇总). 顺便写个博客记录一下~~ 为什么用linux ...

  6. linux crontab 定时任务 邮件问题 及其相关的 dead.letter 问题

    最近开发项目的时候发现公司服务器用root账号登录的时候 一直会提示有新的信件,一直提示一直提示. 联想到另一台服务器上 的dead.letter文件每天都不断的变大  而且在 root家目录里 ,系 ...

  7. linux crontab定时任务调用CI框架PHP代码

    *****监控项目中使用*****: sudo crontab -u wangyan -e i 5,25,45 * * * * wget http://xxx.xxx.com/xxx/xx Esc : ...

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

    一. Crontab 介绍 crontab命令的功能是在一定的时间间隔调度一些命令的执行. 1.1 /etc/crontab 文件 在/etc目录下有一个crontab文件,这里存放有系统运行的一些调 ...

  9. linux crontab定时任务详解

    1.  为当前用户创建cron服务: crontab  -e 例如 文件内容如下(每隔1分钟执行sql脚本): */1 * * * * mysql -h127.0.0.1 -uroot -proot ...

  10. Linux crontab定时任务命令使用记录

    安装crontab 使用 crontab -v 如果提示没有该命令,则需要安装.安装也很简单,推荐使用yum安装.一条命令即可(yum install crontab),这里不多介绍. 下面是一些基础 ...

随机推荐

  1. 【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 很长时间没有来更新博客了,一是,最近有些忙,二是,Core也是一直在摸索中,其实已经完成了一个框架了,并且正在准备在生产环境中 ...

  2. JAVA 入门第二章 (面对对象)

    本渣渣鸽了一个月终于有时间更新.因为有c++基础,学起来这章还是比较简单的,本章我觉得是程序猿质变课程,理解面向对象的思想,掌握面向对象的基本原则以及 Java 面向对象编程基本实现原理,熟练使用封装 ...

  3. emoji哈哈哈哈

    Unicode 官网上的FAQ令人发笑,啊哈哈哈 Q: What are the most popular emoji characters? Q: Do emoji characters have ...

  4. Splash页面跳转主页面,去掉主页面标题栏

    requestWindowFeature(Window.FEATURE_NO_TITLE); // 去除标题,必须在setContentView之前调用

  5. 使用mvn archetype:generate生产maven工程,响应很慢

    经常到下列时就不往下走了. 解决方案: 1.不使用interactive mode方式,直接指定DarchetypeArtifactId 2.仍使用interactive mode方式,但增加参数 - ...

  6. 详解java定时任务

    在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer定时任务来实现.下面LZ就其原理.实例以及Timer缺陷三个方面来解析JavaTimer定时器. ...

  7. Redis五种基本数据结构

    1.字符串 示例: 2.列表 示例: 3.集合 示例: 4.散列 示例: 5.有序集合 待续...

  8. Oracle XMLTable 使用教程与实例

    从Oracle 10g开始,甲骨文公司新增了XQuery和XMLTable两个功能作为处理XML的武器. XMLQuery一样,您可以使用XQuery语言构造XML数据和查询XML和关系数据.你可以使 ...

  9. Oracle的SQL基础

    1.了解SQL的种类 (1)DDL 数据定义语言:定义数据库中数据要如何存储的,包括对数据库对象的创建(create)修改(alter)删除(drop)的操作,这些对象主要有数据库,数据表,视图,索引 ...

  10. mysql插入多条数据时间复杂度比较

    SQL脚本 select * from users; 方式一: insert into users(name, age, course_id) VALUES("test",1, & ...