安装 CronTab
CentOS 中自带了CronTab 如果有需要 百度一下,你就知道
CentOS 安装 CronTab
vixie-cron 软件包是 cron 的主程序
yum -y install vixie-cron
crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序
yum -y install crontabs
检查是否开机启动,如果没有需要配置,默认是启动的
Centos 7:
[root@web opt]# systemctl list-unit-files
> crond.service enabled
Ubuntu 安装 CronTab
apt-get install cron
CronTab 使用与解释
Centos 下的使用的语法
crontab -l
查看所有的计划任务
crontab -e
修改计划任务
service crond start
启动计划任务
service crond restart
重启计划任务
service crond reload
重新载入计划任务
Ubuntu 下的使用的语法
service cron start
启动计划任务
service cron restart
重启计划任务
service cron reload
重新载入计划任务
如果第一次用这个命令会让你选择文本编辑器, 我选择的是vim
如果要换: select-editor
CronTab 的语法
* * * * * date >> /tmp/date.txt
* | * | * | * | * | date >> /tmp/date.txt |
---|---|---|---|---|---|
minute | hour | day | month | week | command |
分钟 | 小时 | 几号 | 几月 | 星期 | 需要执行的命令 |
使用案例
1 * * * * /opt/request.sh |
每小时的第1分钟执行 |
*/60 * * * * /opt/request.sh |
每小时执行;<br />注:从计划任务启动的时间开始算起 |
*/15 * * * * /opt/request.sh |
每15分钟执行;<br />即:每个小时的第15 30 45 60分钟执行 |
1,30 * * * * /opt/request.sh |
每小时的第1、第30分钟执行 |
10 7 * * * /opt/request.sh |
每天的07:10执行 |
0 */3 * * * /opt/request.sh |
每三小时执行;<br />即:3点;6点;9点;12点... |
10 7,23 * * * /opt/request.sh |
每天的07:10、23:10执行 |
10 7-23 * * * /opt/request.sh |
每天的07到23点的第10分钟执行 |
10 7 8 * * /opt/request.sh |
每个月的8号上午07:10执行 |
10 7 8,9 * * /opt/request.sh |
每个月的8号、9号的上午07:10执行 |
10 7 8 6 * /opt/request.sh |
每年的6月8号上午07:10执行 |
10 7 8 5,6 * /opt/request.sh |
每年的5月8号、6月8号上午07:10执行 |
10 7 * * 0 /opt/request.sh |
每个星期日的上午07:10执行;<br />注:星期天:0;星期一:1 |
0 */3 * * * sh /opt/request.sh |
每三小时 执行脚本 |
01 * * * * root run-parts /etc/cron.hourly |
每小时执行/etc/cron.hourly目录内的脚本 |
01 * * * * root run-parts /etc/cron.hourly |
每小时执行/etc/cron.hourly目录内的脚本 |
3,15 * * * * /service/l-zm/request.sh |
每小时的第3和第15分钟执行 |
3,15 8-11 * * * /service/l-zm/request.sh |
在上午8点到11点的第3和第15分钟执行 |
3,15 8-11 */2 * * date >> /tmp/date.txt |
每隔两天的上午8点到11点的第3和第15分钟执行 |
3,15 8-11 * * 1 date >> /tmp/date.txt |
每个星期一的上午8点到11点的第3和第15分钟执行 |
30 21 * * * /service/l-zm/request.sh |
每晚的21:30 |
45 4 1,10,22 * * /service/l-zm/request.sh |
每月1、10、22日的4 : 45 |
10 1 * * 6,0 /service/l-zm/request.sh |
每周六、周日的1 : 10 |
0,30 18-23 * * * /service/l-zm/request.sh |
每天18 : 00至23 : 00之间每隔30分钟 |
0 23 * * 6 /service/l-zm/request.sh |
每星期六的晚上11 : 00 pm |
* 23-7/1 * * * /service/l-zm/request.sh |
晚上11点到早上7点之间,每隔一小时 |
0 11 4 * mon-wed /service/l-zm/request.sh |
每月的4号与每周一到周三的11点 |
0 4 1 jan * /service/l-zm/request.sh |
一月一号的4点 |
*/1 * * * * /opt/request.sh |
每分钟执行 |
0 * * * * /opt/request.sh |
每小时执行 |
0 0 * * * /opt/request.sh |
每天执行 |
0 0 * * 0 /opt/request.sh |
每周执行 |
0 0 1 * * /opt/request.sh |
每月执行 |
0 0 1 1 * /opt/request.sh |
每年执行 |
每秒执行一次
*/1 * * * * sleep 0s;date >> /tmp/date.txt
*/1 * * * * sleep 1s; date >> /tmp/date.txt
*/1 * * * * sleep 2s; date >> /tmp/date.txt
*/1 * * * * sleep 3s; date >> /tmp/date.txt
*/1 * * * * sleep 4s; date >> /tmp/date.txt
*/1 * * * * sleep 5s; date >> /tmp/date.txt
*/1 * * * * sleep 6s; date >> /tmp/date.txt
*/1 * * * * sleep 7s; date >> /tmp/date.txt
*/1 * * * * sleep 8s; date >> /tmp/date.txt
*/1 * * * * sleep 9s; date >> /tmp/date.txt
*/1 * * * * sleep 10s; date >> /tmp/date.txt
*/1 * * * * sleep 11s; date >> /tmp/date.txt
*/1 * * * * sleep 12s; date >> /tmp/date.txt
*/1 * * * * sleep 13s; date >> /tmp/date.txt
*/1 * * * * sleep 14s; date >> /tmp/date.txt
*/1 * * * * sleep 15s; date >> /tmp/date.txt
*/1 * * * * sleep 16s; date >> /tmp/date.txt
*/1 * * * * sleep 17s; date >> /tmp/date.txt
*/1 * * * * sleep 18s; date >> /tmp/date.txt
*/1 * * * * sleep 19s; date >> /tmp/date.txt
*/1 * * * * sleep 20s; date >> /tmp/date.txt
*/1 * * * * sleep 21s; date >> /tmp/date.txt
*/1 * * * * sleep 22s; date >> /tmp/date.txt
*/1 * * * * sleep 23s; date >> /tmp/date.txt
*/1 * * * * sleep 24s; date >> /tmp/date.txt
*/1 * * * * sleep 25s; date >> /tmp/date.txt
*/1 * * * * sleep 26s; date >> /tmp/date.txt
*/1 * * * * sleep 27s; date >> /tmp/date.txt
*/1 * * * * sleep 28s; date >> /tmp/date.txt
*/1 * * * * sleep 29s; date >> /tmp/date.txt
*/1 * * * * sleep 30s; date >> /tmp/date.txt
*/1 * * * * sleep 31s; date >> /tmp/date.txt
*/1 * * * * sleep 32s; date >> /tmp/date.txt
*/1 * * * * sleep 33s; date >> /tmp/date.txt
*/1 * * * * sleep 34s; date >> /tmp/date.txt
*/1 * * * * sleep 35s; date >> /tmp/date.txt
*/1 * * * * sleep 36s; date >> /tmp/date.txt
*/1 * * * * sleep 37s; date >> /tmp/date.txt
*/1 * * * * sleep 38s; date >> /tmp/date.txt
*/1 * * * * sleep 39s; date >> /tmp/date.txt
*/1 * * * * sleep 40s; date >> /tmp/date.txt
*/1 * * * * sleep 41s; date >> /tmp/date.txt
*/1 * * * * sleep 42s; date >> /tmp/date.txt
*/1 * * * * sleep 43s; date >> /tmp/date.txt
*/1 * * * * sleep 44s; date >> /tmp/date.txt
*/1 * * * * sleep 45s; date >> /tmp/date.txt
*/1 * * * * sleep 46s; date >> /tmp/date.txt
*/1 * * * * sleep 47s; date >> /tmp/date.txt
*/1 * * * * sleep 48s; date >> /tmp/date.txt
*/1 * * * * sleep 49s; date >> /tmp/date.txt
*/1 * * * * sleep 50s; date >> /tmp/date.txt
*/1 * * * * sleep 51s; date >> /tmp/date.txt
*/1 * * * * sleep 52s; date >> /tmp/date.txt
*/1 * * * * sleep 53s; date >> /tmp/date.txt
*/1 * * * * sleep 54s; date >> /tmp/date.txt
*/1 * * * * sleep 55s; date >> /tmp/date.txt
*/1 * * * * sleep 56s; date >> /tmp/date.txt
*/1 * * * * sleep 57s; date >> /tmp/date.txt
*/1 * * * * sleep 58s; date >> /tmp/date.txt
*/1 * * * * sleep 59s; date >> /tmp/date.txt
如果每秒没有循环连续 可以试试把 sleep 0s 删除, 在最后添加 sleep 60s (CentOS 和 Ubuntu 下不一样)
CronTab 日志输出相关
将输出重定向到/dev/null,这是个空设备,也就是忽略其输出
*/1 * * * * /opt/request.sh > /dev/null 2>&1
> 表示重定向到哪里
*/1 * * * * /opt/request.sh >> /opt/crontab-log/crontab-log-$(date "+\%Y-\%m-\%d").log 2>&1
> 为覆盖输出
>> 是增量输出
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1