Linux之crontab详解

CRONTAB概述:

Crontab是一个用于设置周期性被执行的任务的工具。

被周期性执行的任务被称为cronjob。

周期性执行的任务列表被称为crontable。

 

安装并检查crontab服务:

crontab  -l   ###检查是否安装crontab工具

service crond  status    ###检查crond服务是否启动

chkconfig –list  crond    ###查看crond服务随系统启动等级的状态

 

安装cron

yum  install vixie-cron

yum  install crontabs

 

一个简单的例子:

1.     crontab -e   ###命令执行会用vi编辑器打开crontab的任务配置文件

2.     如图


添加以上内容,并退出,在crontab -l来查看刚才设置的任务列表。

任务解释:每分钟打印时间到/tmp/log.txt文件里面

3.tail  –f  /tmp/log.txt


tail  -f /tmp/log.txt中的-f选项是实时的查看文件的变化,ctrl+c可以退出。

此示例简单了解crontab的工具使用。

 

Crontab基本组成:

 

 

Crontab配置文件格式:


需要注意的是没有60分钟与24时的设定,60分即0分,24时即00时。

 

关于格式的几个简单示例:

每晚21:34重启apache服务:

30 21 * * * service httpd restart

每月1、10、30日的4:33重启apache:

33 4 1,10,30 * * service httpd restart

每月10日到20日18:58重启apache:

58 18 10-20 * * service httpd sestart

每隔两分钟重启apache服务器:

*/2 * * * * service httpd restart

每小时的1分重启,后面每增加两分钟重启一次(奇数分钟重启):

1-59/2 * * * * service httpd restart

晚上11点到早上7点之间,每小时重启一次:

0 23-7/1 * * * service httpd restart

每天18:00到23:00之间每隔30分钟重启一次apache:

0,30 18-23 * * * service httpd restart

0-59/30 18-23 * * * service httpd restart

 

小结:

*表示任何时候都匹配

“A,B,C”表示A或B或C时执行命令

“A-B”表示A到B之间时(连续的)执行命令

“*/A”表示每A分钟(小时、天等)执行一次命令

在使用crontab工具时,可以使用-u来指定哪个用户的配置,不指定默认是当前登录用户。

 

Crontab配置文件详解:

全局配置文件/etc/crontab

这个文件存放了crontab相关的环境变量,并存放一些相关的系统周期任务。当然也可以在里面添加自己想执行的周期任务,但要在command语句前填写用户名,标识是哪个用户的执行任务,同样用空格分隔。可以在/var/log/cron文件里面查看通过/etc/crontab文件执行任务的情况。

 

root用户的计划任务配置文件是/var/spool/cron/root

当我们执行crontab –e命令时,实际编辑的就是这个文件。当然在这个目录下还有其他用的配置文件。

可以用vi /var/spool/mail/root打开文件编辑,在用crontab –l查看,会发现内容和我们改的是一样的。

 

日志文件其实是/var/log/cron这个文件

tail –f/var/log/cron这个文件可以监测这个文件的变化,以及计划任务的执行情况。

你可能感兴趣的:(LINUX)