Crontab是一个Unix/Linux系统下的常用的定时执行工具,相当于windows的计划任务。
执行service crond start若提示未找到crond.service,则需要安装crontab。
CentOS安装crontabyum -y install vixie-cron crontabs //安装Crontabchkconfig crond on //设为开机自启cron服务service crond start|restart|stob //cron服务启动暂停命令
说明:vixie-cron软件包是cron的主程序;crontabs软件包是用来安装、卸载、 守护cron进程的表格程序。
crontab常用指令
1、查看crontab定时执行任务列表
crontab –l
2、编辑添加crontab定时执行任务
crontab -e
crontab –e添加执行任务
注意:执行crontab –e后会使用默认的编辑器打开(类似windows记事本程序打开txt)。一般Linux默认安装的是vi或vim编辑器,判断是不是vi程序,直接按下键盘i键,看是否进入----insert---插入编辑模式,是的话,就可以用方向键移动光标操作了。
执行crontab -e后使用vi或vim命令步骤
1、将输入光标定位到正确位置,可以手动键入指令,也可xshell快捷键操作,shift+insert粘贴已经编辑好的指令:#每3分钟清空一下缓存目录*/3 * * * * rm -rf /home/wwwroot/cikev.com/data/Runtime/*
2、指令添加后,按esc键退出编辑插入模式,然后输入四个字母 :wq! 表示强制保存并退出添加计划任务。
其实crontab -e与crontab -l编辑查看的文件就是/var/spool/cron/root文件,可以直接vi /var/spool/cron/root
vi /etc/crontab添加执行任务
对crontab –e添加执行任务方式不熟悉的,可以直接改/etc/crontab文件,通过vi编辑添加,或者打开crontab文件直接添加执行任务。
需要注意的是crontab –e添加执行任务是不需要指定用户的,默认root权限( 保存在/var/spool/cron目录中的文件其文件名与用户名一致 )。而 /etc/crontab文件添加指令是必须要指定用户的,不指定用户就没有权限执行任务。
/etc/crontab执行任务格式实例:
每3分钟清空一下缓存目录 下面就是/etc/crontab文件内的指令
*/3 * * * * root rm -rf /home/wwwroot/cikev.com/data/Runtime/cat /etc/crontab查看定时任务书写格式
从上图可以看出执行任务的添加格式说明
crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有
* 取值范围内的所有数字
/ 每多少个数字
- 从x到xx
, 散列数字
crontab执行任务指令实例
3,15 * * * * myCommand 每小时的第3和第15分钟执行
3,15 8-11 * * * myCommand 上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand 每隔两天上午8点到11点的第3和第15分钟执行
35 3 1,10,22 * * /etc/init.d/mysql restart 每月1、10、22日的3 : 35重启mysql
23-7/1 * * * /etc/init.d/sm restart 晚11点到早7点,每隔一小时重启sm
*/1 * * * /etc/init.d/sm restart 每隔一小时重启sm
0,30 18-23 * * * /etc/init.d/sm restart 每天18:00-23:00之间每隔30分钟重启sm
10 1 * * 6,0 /etc/init.d/sm restart 每周六、周日的1:10重启sm
注意:以上两个方式添加执行任务,只是指定用户与不用指定的区别,cron在启动状态下添加执行任务后,cron服务是不需要重新启动的,执行任务保存后会自动生效, 所以最好service crond start后用上面两个方式的任意一种形式添加执行任务。