Crontab是一个用于设置周期性被执行的任务的工具。
被周期性执行的任务被称为cronjob。
周期性执行的任务列表被称为crontable。
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的工具使用。
需要注意的是没有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来指定哪个用户的配置,不指定默认是当前登录用户。
全局配置文件/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这个文件可以监测这个文件的变化,以及计划任务的执行情况。