原创

crontab定时任务详解

1、crontab命令概念
crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。
crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过/etc/cron.deny 和 /etc/cron.allow 这两个文件来禁止或允许用户拥有自己的crontab文件。

2、检查是否安装了crontab
检查安装命令:crontab -version
或者使用命令:rpm -qa | grep crontab

3、没有安装的话,可以使用yum进行安装
安装命令:yum install crontabs

4、crontab服务操作
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //服务状态

5、crontab的配置文件
查看命令:more /etc/crontab


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

6、应用实例
##每月每天凌晨3点50分和中午13点50分执行mytest.sh脚本
50 3,13 * * * /home/mytest.sh 

##每月每天每隔6小时的每20分钟执行mytest.sh脚本
20 */5 * * * /home/mytest.sh

##每月每天早上8点到下午18点每隔2小时的每30分钟执行mytest.sh脚本
30 8-18/2 * * * /etc/init.d/network restart

##每月每天晚上21点30分执行mytest.sh脚本
30 21 * * * /etc/init.d/network restart

##每月1号、10号、22号凌晨4点45分执行mytest.sh脚本
45 4 1,10,22 * * /etc/init.d/network restart

##8月份周一、周日凌晨1点30分执行mytest.sh脚本
30 1 * 8 6,0 /etc/init.d/network restart

##每月每天每小时整点执行mytest.sh脚本
00 */1 * * * /etc/init.d/network restart

注意:设置定时任务时一定要加上注释,方便以后查看一目了然。

7、设置定时任务列表
操作命令:crontab -e
设置完成后按shift+Esc键退出编辑,再:wq保存。
查看定时任务列表:crontab -l
删除crontab,输入: crontab -r
查看crontab运行状态:service crond status

8、crontab日志文件保存在:/var/log/cron
动态查看定时器日志执行情况
命令:tail -f /var/log/cron

本文链接地址:http://www.ysxbohui.com/article/158

正文到此结束