crontab设置了每天3点执行一次,第二天发现它执行了60次,为什么

by pxz


发布于: 2018-08-16 所属分类: linux 标签: crontab  345


<p>最近在服务器上添加了一个定时脚本, /www/bin/xxx.sh, 要求是每天凌晨3点执行一次, 于是在/etc/crontab添加了以下代码</p> <pre><code>* 3 * * * /www/bin/xxx.sh </code></pre><p>但第二天起来查看日志发现, 它执行了60次, 为什么?</p> <p>在 <code>http://man.linuxde.net/crontab</code> 详细查看了 crontab的配置文档后, 找到了原因, 原来是自己对配置的特殊字符没有正确理解导致的</p> <p>于是, 把第一个 * 号 改成 0</p> <pre><code>0 3 * * * /www/bin/xxx.sh </code></pre><p>原因解释:</p> <p>首先看文档解释:</p> <pre><code>星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。 </code></pre><p>由于 <em> 号表示所有可能的值,上面的例子中, 分钟位设置成</em>, 就是表示凌晨3点的 0 - 59 每一分钟都会执行一次, 所以执行了60次,<br>而改成 0后则表示, 只有在 3点 0分时才会执行 </p>

发表评论

暂无评论

搜索
用户登陆