Crontab 计划任务

简介:

Crontab是Linux运维最基础的命令之一,该命令的作用就是定期执行计划性工作,它类似于Windows的计划任务。CentOS自带这个服务而且是自动启动的,它的命令行工具crontab命令却不是Linux的内置命令。通过type命令就可以看出来。

1
2
yum  install  crontab    安装
service crond start /stop/restart/reload


Linux中调度任务分为两种:系统调度任务、用户调度任务

系统调度任务:顾名思义是系统发起的也就是内置的完成系统操作,配置文件为/etc/crontab

用户调度任务:用户发起的,完成用户所需要的工作,配置文件自己生成,/var/spool/cron 

所以对于系统来说它既要执行系统级的任务也好执行用户级别的任务。


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

wKiom1gNzO2A_ELBAACPvZhILzc498.jpg-wh_50

SHELL:系统使用的SHELL是什么

PATH:执行命令时寻找命令的路径

MAIL TO:如果出现错误或者输出那么发送电子邮件给谁

HOME:执行命令或脚本使用的主目录


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

minute hour day month week commd
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操作

1
* * * * *  ping  www.baidu.com

每5分执行一次PING操作

1
5 * * * *  ping  www.baidu.com

每天上午9点到12点,每10分钟执行一次

1
10 9-12 * * *  ping  www.baidu.com

每周六和周日凌晨2点执行一次

1
* 2 * * 6,0  ping  www.baidu.com

每个三天执行一次

1
* * * /3  * *  ping  www.baidu.com

每天凌晨到6点,每隔一小时执行一次

1
* 0-6 /1  * * *  ping  www.baidu.com


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

wKiom1gOrkCD1NRFAAA5UUa8g2s087.jpg-wh_50

看一看执行情况

1
tail  /var/log/cron

wKiom1gOrlujfXZlAADo8FNH-MM551.jpg-wh_50

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

wKioL1gOrt-QegQiAAB1hGjG8gY666.jpg-wh_50

所以你可以直接编辑这个文件,也可以crontab -e也是一样的,如果都是编辑当前用户的计划任务。






      本文转自linuxjavachen  51CTO博客,原文链接:http://blog.51cto.com/littledevil/1865126,如需转载请自行联系原作者






相关文章
|
4月前
|
存储 JavaScript Linux
Crontab详解
Crontab详解
138 0
|
SQL Linux Apache
Crontab 详解
Crontab 详解
|
Shell 安全 开发工具
计划任务
crontab crontab -e 写计划任务crontab -l 列出所有计划任务crontab -r 删除计划任务crontab -u username 管理员可以去管理其他用户的计划任务 * * * * * command 分 时 日 月 周 可以限制使用crontab的用户账号,可以配置的文件有:/etc/cron.
1132 0
|
JavaScript 前端开发
|
MySQL 关系型数据库 Shell