目录

  • Linux crontab 命令
    • 1. 安装Crontab
    • 2. crontab服务启动与关闭
    • 3. 配置文件
      • 3.1 全局配置文件
        • 3.1.1 crontab文件
        • 3.1.2 cron.allow / cron.deny文件:
      • 3.2 用户配置文件
    • 4. crontab 命令

链接:Linux 公社

Linux crontab 命令

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

注意
新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

linux 任务调度的工作主要分为以下两类

  1. 系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
  2. 个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

1. 安装Crontab

  • 失败:
[root@CentOS ~] yum -y install vixie-cron
[root@CentOS ~] yum -y install crontabs

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

  • 成功
#安装crontab
[root@CentOS ~] yum install cronie

2. crontab服务启动与关闭

  1. cron 是 linux 的内置服务,可以用以下的方法启动、关闭这个服务:
service crond start     //启动服务
service crond stop      //关闭服务
service crond restart   //重启服务
service crond reload    //重新载入配置
service crond status    //查看crontab服务状态
  1. 要把cron设为在开机的时候自动启动

两种方式:
1、在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可
2、在CentOS系统中加入开机自动启动: chkconfig --level 345 crond on【在运行级别3、4、5上让crond服务开机自动启动】链接: chkconfig命令介绍

  1. crontab操作
crontab -l //查看当前用户的crontab;
crontab -e //编辑crontab;
crontab -r //删除crontab.

3. 配置文件

3.1 全局配置文件

在/etc目录下面存在

  1. cron.hourlycron.dailycron.weeklycron.monthlycron.d五个目录
  2. crontab,cron.deny二个文件

cron.daily            是每天执行一次的job
cron.weekly         是每个星期执行一次的job
cron.monthly       是每月执行一次的job
cron.hourly          是每个小时执行一次的job
cron.d                  是系统自动定期需要做的任务
crontab                是设定定时任务执行文件
cron.deny            文件就是用于控制不让哪些用户使用Crontab的功能

3.1.1 crontab文件

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

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
# run-parts举例
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 任务运行环境的变量。
SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell);
PATH 变量定义用来执行命令的路径。
cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。
如果 MAILTO 变量被定义为空白字符串(MAILTO="")电子邮件就不会被寄出。
HOME 变量可以用来设置在执行命令或脚本时使用的主目录。

3.1.2 cron.allow / cron.deny文件:

/etc/cron.allow/etc/cron.deny 文件被用来限制对 cron 的使用
注意:

  1. 这两个使用控制文件的格式都是每行一个用户
  2. 两个文件都不允许空格
  3. 如果使用控制文件被修改了,cron 守护进程(crond)不必被重启
  4. 使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取
  5. 无论使用控制文件中的规定如何,root 都总是可以使用 cron
  6. 如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略
  7. 如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron
  8. 如果两个文件都不存在只有root可以提交任务

总结:linux的cron配置文件中cron.deny 和cron.allow 只能有一个文件存在或者都不存在,里面没有内容不会发生什么事,其中一个文件写了内容才会生效,同时存在且都有内容时,cron.allow优先

cron.allow文件和crontab命令的关系
同root一样,普通用户也可以使用cron来重复运行程序。要执行的任务通过crontab命令来提交给cron执行。root通过/var/adm/cron/cron.allow文件来控制谁有权使用crontab命令。如果用户的名字出现在cron.allow文件中,他就有权使用crontab命令。如果cron.allow文件不存在,系统会检查/var/adm/cron/cron.deny文件来确定是否这个用户被拒绝存取。如果两个文件都存在,cron.allow有优先权。如果两个文件都不存在,只有root可以提交任务。如果cron.deny文件为空文件,所有的用户都可以使用crontab.

3.2 用户配置文件

每个用户都有自己的cron配置文件,通过crontab -e 就可以编辑,一般情况下我们编辑好用户的cron配置文件保存退出后,系统会自动就存放于/var/spool/cron/目录中,文件以用户名命名.linux的cron服务是每隔一分钟去读取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的内容.

4. crontab 命令

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

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

格式:

*       *        *        *        *           command
minute hour day month week command
星期 命令
  • minute: 表示分钟,可以是从0到59之间的任何整数。
  • hour:表示小时,可以是从0到23之间的任何整数。
  • day:表示日期,可以是从1到31之间的任何整数。
  • month:表示月份,可以是从1到12之间的任何整数。
  • week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
  • command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

特殊字符:
星号(*):代表每的意思,例如month字段如果是星号,则表示每月都执行该命令操作。
逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。
中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次

例子:

##每月每天凌晨3点30分和中午12点20分执行test.sh脚本
30 3,12 * * *  /home/test.sh           ##每月每天每隔6小时的每30分钟执行test.sh脚本
30 */6 * * *  /home/test.sh##每月每天早上8点到下午18点每隔2小时的每30分钟执行test.sh脚本
30 8-18/2 * * * /etc/init.d/network restart##每月每天晚上21点30分执行test.sh脚本
30 21 * * *  /etc/init.d/network restart##每月1号、10号、22号凌晨4点45分执行test.sh脚本
45 4 1,10,22 * * /etc/init.d/network restart##8月份周一、周日凌晨1点10分执行test.sh脚本
10 1 * 8 6,0 /etc/init.d/network restart##每月每天每小时整点执行test.sh脚本
00 */1 * * *  /etc/init.d/network restart注意:
#写法不规范,分钟应该写成 00
* 23,00-07/1 * * * /etc/init.d/network restart  ##强调,周和日尽量不要同时使用,否则达不到想要的效果00 11 * 4 1-3 /etc/init.d/network restart 30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache*/30 * * * * /usr/sbin/ntpdate 210.72.145.44
每半小时同步一下时间

Linux crontab 命令安装使用相关推荐

  1. 【Linux】Linux crontab 命令详解

    原文来自:http://ir.hit.edu.cn/~wsong/development/crontab.html Linux crontab 命令详解 在 Linux 中,任务可以被配置在指定的时间 ...

  2. linux crontab 管理,linux crontab 命令详解

    linux crontab 命令详解 使用方式 : crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } 说明 : crontab ...

  3. Linux crontab 命令基本说明

    Linux crontab是用来定期执行程序的命令. 当安装完成操作系统之后,默认便会启动此任务调度命令. crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作. ...

  4. 【Linux】一步一步学Linux——crontab命令(132)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 知识储备 05. 参考示例 06. 附录 01. 命令概述 crontab是英文"cron ...

  5. Linux crontab命令

    Linux 如果要定期执行某个任务,可以尝试下crontab命令 下面是crontab的命令格式: 分 时 日 月 星期 要运行的命令 如果要在某一个特殊的时间段里执行某一命令,例如在每月1.10.2 ...

  6. mysql 远程安装linux命令,Linux mysql命令安装允许远程连接的安装设置方法

    而这些东西,正是新手很困惑的地方.一下是我的安装笔记,在Centos虚拟机上安装成功.中文的参考:http://xieyu.blog.51cto.com/213338/59749英文的参考 How t ...

  7. Linux用命令安装音乐软件,在Ubuntu 18.04系统中使用命令安装Qmmp音乐播放器的方法...

    在Ubuntu 18.04操作系统中安装Qmmp音乐播放器非常简单,只需要两段命令就可以搞定.下面介绍其方法. Qmmp音乐播放器介绍 Qmmp是一款开源基于Qt的多媒体播放器,提供Qt4及Qt5支持 ...

  8. linux convert命令安装及使用

    linux下ImageMagick安装和使用 检查系统有无安装ImageMagick shell> rpm -qa | grep ImageMagick 没有就开始安装ImageMagick s ...

  9. Linux crontab 命令使用案例 @LCF

    cron介绍 我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件. /var/spool/cron/ 目 ...

最新文章

  1. spring cloud微服务治理eureka、hystrix、zuul代码例子
  2. 微软宣布MySQL和PostgreSQL的Azure数据库服务正式可用
  3. 如何自行绕制所需要的2.2uH的电感?
  4. 向Window窗体发送消息,控制程序的运行.
  5. matlab 柱面投影,matlab练习程序(圆柱投影)
  6. insert into select 主键自增_springboot2结合mybatis拦截器实现主键自动生成
  7. jmap, jhat, jvisualvm:java堆内存对象分析利器
  8. 掌握基本的Java程序开发过程 题库 1213
  9. [深入React] 1. 开发环境搭建
  10. 收藏 | 自监督视觉Transformer
  11. 【Elasticsearch】es 一个数据精度引发的血案
  12. php读入输入_php-读取用户输入并检查数据类型
  13. QString、QByteArray 相互转换、和16进制与asc2转换
  14. 我的网站被黑了,关键词被劫持,总结一下是怎么解决的。
  15. mean python_Python mean()方法的详细指南
  16. 会声会影编辑html,网页视频制作使用会声会影剪辑
  17. 企业微信文件会过期吗?
  18. 自定义微博小尾巴 源码+解析
  19. iOSSafari不兼容正则表达式的断言匹配及解决办法
  20. BOM(浏览器模型)

热门文章

  1. 十大经典排序算法解析及优化
  2. mac php oracle11g,Mac安装Oracle11g并使用Navicat连接
  3. 神经网络模型图怎么画,图像识别神经网络模型
  4. UE4 鼠标点击事件 || 虚幻4 鼠标点击事件
  5. unity代码更换ui图片_Unity UI图片的一种优化方式
  6. 自己写的Cesium加载天地图数据服务的方法(亲测可用)
  7. 网飞公司(Netflix)是怎么用Python的?
  8. 信息学奥赛一本通 1327:【例7.6】黑白棋子的移动 | 洛谷 P1259 黑白棋子的移动
  9. objective-c过滤HTML标签
  10. 《物流与运输评论》杂志推出10大智能交通运输系统解决方案公司