本文内容是基于CentOS 6.5,如果是其它版本(如:CenOS 7.0),命令可能会有区别。
[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
一、crond服务:定时任务是由crond服务提供的。
1、crond服务默认情况下是开机启动的。可以使用命令chkconfig或者chkconfig --list来查看。
[root@localhost ~]# chkconfigauditd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
2、查看crond服务是否在运行。
[root@localhost ~]# service crond statuscrond (pid 1230) 正在运行...
当然,也可以使用ps来查看
[root@localhost ~]# ps -ef |grep crond |grep -v greproot 1230 1 0 23:04 ? 00:00:00 crond
3、启动crond服务
[root@localhost ~]# service crond start正在启动 crond: [确定]
4、停止crond服务
[root@localhost ~]# service crond stop停止 crond: [确定]
5、重启crond服务
[root@localhost ~]# service crond restart停止 crond: [确定]正在启动 crond: [确定]
二、创建、查询、删除定时任务
1、为用户设置定时任务使用crontab命令,常用的命令选项有:
-l(该字母是小写的L) 列出已设置的定时任务
-e 编辑定时任务
-r 删除当前用户所有定时任务
-u 与前面3个选项配合使用,表示列出、编辑、删除指定用户的定时任务
在没有创建任何定时任务前,使用crontab -l命令查看时,会提示该用户没有定时任务。
[root@localhost ~]# crontab -lno crontab for root
使用crontab -e命令会打开一个crontab的编辑界面,该界面就是vi编辑文本的界面。我们在里面按照标准的格式添加内容即可。
crontab -r会删除所有的定时任务,请谨慎使用。一般来说,平时增加、删除一个定时任务时,使用crontab -e命令进入编辑界面编辑增加或者删除就可以了。
-u选项是指定用户,当用户为当前用户时,该选项是省略掉的。因为我们创建任务时大多是针对当前用户,所以我们看见大多数情况下是没有使用-u选项的。下面是为用户jack创建一个定时任务,并查看定时任务。
[root@localhost ~]# crontab -e -u jack[root@localhost ~]# crontab -l -u jack20 12 * * * echo "hello"
2、定时任务的配置说明
任务的标准格式为:
* * * * * [command]
位置 | 含义 | 范围 |
第一个“*” | 一小时当中的第几分钟 | 0-59 |
第二个“*” |
一天当中的第几个小时 | 0-23 |
第三个“*” |
一个月当中的第几天 | 1-31 |
第四个“*” |
一年当中的第几个月 | 1-12 |
第五个“*” |
一周当中的星期几 | 0-7(0和7都代表星期日) |
第六段[command] | 要执行的命令 |
前面5个星号,使用“分时日月周”这5个字来记忆。
举例:
22 12 * * * echo "hello" 表示每天的12点22分打印hello到终端
3、注意事项:
(1)除非有特殊要求,否则日、月最好不要和周同时使用,容易把自己绕晕了。
(2)整点的表示,要在分钟处写0,而不是写*,*表示所有。例如:* 1 * * *每天1点里的每1分钟都执行一次,如果想让1点整执行,要写成0 1 * * *才行。
(3)如果想表示多久执行一次,使用*/n来表示,例如:*/5 1 * * *表示1点里每5分钟执行一次。
(4)这里没有提供表示年的位置。其实仔细想一想,我们如果把表示月份的星号设置为具体的一个数之后,就相当于隔了一年。例如 0 1 1 9 *表示每年的9月1日1点整开始执行。
本文出自 “喜哥的博客” 博客,请务必保留此出处http://xigestudy.blog.51cto.com/10045547/1843146