Crontab 是一个用于设置周期性被执行任务的工具
被周期性执行的任务是Cron job
被周期性执行的任务列表是Cron table
putty:一个免费易用的SSH链接工具
检查cron 服务
- 检查Crontab 工具是否安装: crowtab -l
- 检查crond 服务是否启动:service crond status
安装cron
- yum install vixie-cron
- yum install crontabs
一个简单的例子
crontab -e* /1 * * * * data >> /tmp/log.txt crontab -l
tail -f /tmp/log.txtCrontab 的基本格式:
系统服务:Crond 配置工具crontab
每分钟都会以配置文件刷新定时任务
Crontab 的配置文件格式:
***** COMMAND
- 第一个* 代表的是分钟 (0~59)
- 第二个*代表的是小时(0~23)
- 第三个*代表的是日期(0~31)
- 第四个*代表的是月份(0~12)
- 第五个*代表的是星期(0~7 | 0, 7 都是代表星期天)
每晚21
重启 apache30 21 * * * service httpd restart
每月1, 10, 22日的 4
重启apache45 4 1,10,22 * * service httpd restart
每月1-10日的4
45 4 1-10 * * service httpd restart
每隔两分钟重启apache
* /2 * *** service httpd restart1-59/2 * * * * service httpd restart晚上11点到早上七点, 每隔1小时重启apache
0 23-7/1 * * * service httpd restart
每天18:00到23
0,30 18-23 * * * service httpd restart
0-59/30 18-23 * * * service httpd restart
*/A表示每A分钟,A-B表示A到B 之前,*表示任何时候,A,B,C 表示A,B,C时
Crotnab 工具的使用:
crontab --helpcrontab -lcrontab -e
1-59/2 * * * * echo "JISHU*****"
useradd crontestercrontab -e -u0-58/2 * * * * echo "JISHU*****"
crontab -l -u crontestertail -f /var/log/cornCrontab配置文件
全局(系统)配置文件
-/etc/crontab/
注意格式
cd /etc/ls cron*vi crontab # 修改后:wqtail -f /var/log/corn
cd corn.dlscat sysstatcrontab sysstatcrontab -l
vi crontst*/1 * * * * crontab echo “File in /etc/crond/crontst”crontab -l -u crontester
4 collapsed lines
crontab -lcat /var/spool/cron/root 目录所在位置
tail -f /var/log/cronCrontab 常见错误
坏境变量
cdls -avi .bash_profilesource .bash_profile # (改变后在crontab中并不能用)命令行中双引号中未加入反斜扛
第三和第五个域之间的执行的是“或”操作
59 1 1-7 4 0 /root/a.sh (错误)
四月的第一个星期日早晨1时59分运行a.sh
59 1 1-7 4 *testdate+\%w-eq 0 && /root/a.sh (正确)
data +%w
test date +%w -eq 0
echo $? (1表示失败, 0表示成功)
test 1=1
test 1=0
分钟设置误用
* 0,2,4...22 * * * date # (X)0 */2 * * * date # (√)# 每两分钟运行一次综合案例:
半分钟执行命令:
date;sleep 0.5s;date