您的位置:首页 > 运维架构 > Linux

Crontab 计划任务

2016-10-24 17:44 162 查看
Crontab是Linux运维最基础的命令之一,该命令的作用就是定期执行计划性工作,它类似于Windows的计划任务。CentOS自带这个服务而且是自动启动的,它的命令行工具crontab命令却不是Linux的内置命令。通过type命令就可以看出来。
yum install crontab   安装
service crond start/stop/restart/reload


Linux中调度任务分为两种:系统调度任务、用户调度任务
系统调度任务:顾名思义是系统发起的也就是内置的完成系统操作,配置文件为/etc/crontab
用户调度任务:用户发起的,完成用户所需要的工作,配置文件自己生成,/var/spool/cron
所以对于系统来说它既要执行系统级的任务也好执行用户级别的任务。

我们用系统级的配置文件来说下格式,这个在用户级别是一样的



SHELL:系统使用的SHELL是什么
PATH:执行命令时寻找命令的路径
MAIL TO:如果出现错误或者输出那么发送电子邮件给谁
HOME:执行命令或脚本使用的主目录

文件里已经表明了具体格式,这里在说一下它

minutehourdaymonthweekcommd
0-59表示60分钟0-23表示24小时1-31表示天1-12表示12个月0-6 表示周一到周日
要执行的命令
* 表示任何时间,比如如果再hour段写*,表示其他条件满足,不管当前实际hour时间是多少,都执行
, 表示时间间隔,比如在minute段写 0,15,30,45 表示每隔15分钟运行一次
- 表示一个范围,比如在hour段,2-4,表示2点3点4点
/ 表示一个频率,比如在hour段 0-23/2 表示每2小时执行一次,相当于0,2,4,6,8,10,12,14...就是一种简化写法

一般用户设定计划任务就使用crontab命令
crontab file [-u] [-e] [-l | -r]
file 指定一个加载任务列表的文件
-e 编辑当前用户的任务文件,可以指定-u来设定修改谁的
-l 显示当前用户的任务文件,可以指定-u来设定显示谁的
-r 从/var/spool/cron目录中删除某个用户的任务文件

举例:

每分钟执行一次PING操作
* * * * * ping www.baidu.com
每5分执行一次PING操作
5 * * * * ping www.baidu.com
每天上午9点到12点,每10分钟执行一次
10 9-12 * * * ping www.baidu.com
每周六和周日凌晨2点执行一次

* 2 * * 6,0 ping www.baidu.com
每个三天执行一次

* * */3 * * ping www.baidu.com
每天凌晨到6点,每隔一小时执行一次
* 0-6/1 * * * ping www.baidu.com


我们使用crontab -e命令给当前用户建立一个执行计划



看一看执行情况
tail /var/log/cron




用户创建的计划文件在/var/spool/cron下面



所以你可以直接编辑这个文件,也可以crontab -e也是一样的,如果都是编辑当前用户的计划任务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux crontab 计划任务