免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6324 | 回复: 15
打印 上一主题 下一主题

[学习分享] crontab的一个问题。~~~求知道。~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-14 18:06 |只看该作者 |倒序浏览
* */1 * * *  ls /data

这个命令是每小时执行一次吗?在哪一分钟执行呢?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
2 [报告]
发表于 2012-08-14 18:15 |只看该作者
是每小时执行一次

*/1 * * * *  ls /data这个每分钟

论坛徽章:
21
白羊座
日期:2013-08-23 15:49:17金牛座
日期:2013-10-08 17:00:03处女座
日期:2013-10-12 11:54:11CU十二周年纪念徽章
日期:2013-10-24 15:41:34午马
日期:2013-11-27 14:07:21巨蟹座
日期:2013-12-04 10:56:03水瓶座
日期:2013-12-04 15:58:00亥猪
日期:2014-05-24 16:02:3115-16赛季CBA联赛之辽宁
日期:2016-11-07 13:52:53戌狗
日期:2013-08-23 16:15:31白羊座
日期:2013-08-24 21:59:24巨蟹座
日期:2013-08-25 16:34:24
3 [报告]
发表于 2012-08-14 18:16 |只看该作者
分 时 日 月 周    命令

论坛徽章:
0
4 [报告]
发表于 2012-08-14 21:25 |只看该作者
本帖最后由 prints 于 2012-08-14 21:44 编辑

你觉得你的写法和五个位都是星号有什么区别?
你能理解五个位全是星代表什么意思吗?
如果是每小时的第一分钟执行就可以:
  1. 1 * * * * command
复制代码
如果是每小时的整点,第一位改成0就对了,其它位全是星


你再理解一下:
  1. 1 1 * * * command
复制代码
以上会是什么样的周期执行呢?
  1. 1 1 1 * * command
复制代码
这样又会是什么样的周期执行呢?
  1. 1 1 1 1 * command
复制代码
这样呢?
  1. 0 2 1-6 * * command
复制代码
这样呢?
  1. 0 3 1,2,5,8-15 * * command
复制代码
这样呢?

然后你再写出每小时执行4次你的命令,该怎么写?

你能用语言描述出,基本上都过关了。

*/1的写法等同于缺省的*,*本来的意思就是每……
好好理解一下,你会受益匪浅,我见过许多许多人都会有这种啰嗦的写法,就像Shell里过滤字符串许多人非要多个管道cat file | grep xxx一样

论坛徽章:
0
5 [报告]
发表于 2012-08-15 17:25 |只看该作者
回复 4# prints

回复的很精辟!


   

论坛徽章:
0
6 [报告]
发表于 2012-08-15 17:26 |只看该作者
回复 4# prints



那这个就是相当于5个星号了?

就是每分钟执行了?

那要是
* */2 * * *   ls /data

这个呢?

   

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
7 [报告]
发表于 2012-08-15 17:30 |只看该作者

论坛徽章:
0
8 [报告]
发表于 2012-08-15 17:38 |只看该作者
回复 7# ulovko


    我知道这个啊。

但是 * */2 * * * ls /data

这样写linux系统也是接受的,然后我就想知道它代表的是什么意思

论坛徽章:
0
9 [报告]
发表于 2012-08-15 21:41 |只看该作者
本帖最后由 prints 于 2012-08-15 21:44 编辑

回复 8# 张不凡

如果你真的很有兴趣,你就该自己动手做一下实验,说实话我钻牛角尖没有你深。你给出的这种写法,我相信大多数有经验的系统管理员应该不会写得这么蹩脚。
如果想每2小时执行某个命令,可以这样写:
0 */2 * * * command
这代表每过2小时执行一次,很明确,每隔2小时的整点准时执行


* */2 * * * command
你这样的写法系统该怎么认为呢?每隔2小时系统每分钟都执行?所以说这是种很蹩脚的写法,这种问题不是crontab本身的问题而是逻辑上的问题。写crontab都是根据自己的需求写,这种写法我虽然没有写过,不过我猜想应该也是每分钟都执行,如果不是这样,那又什么时候停呢?除非crontab程序为了迁就一些人专门修改过这种写法。

楼主这么爱钻牛角尖还是自己一个一个试吧,这样你的印象才会深刻。

鉴于你这么有好奇心,我送你个例子:
0 5 13 * 5 command
这里我们不谈前两个数字,这个谁都看得懂,我想问,你觉得是每个月的13号它就会执行或者每到星期五它就执行,也就是说两者有一个条件满足就执行;还是只有“黑色星期五”的时候它才会执行?

论坛徽章:
0
10 [报告]
发表于 2012-08-15 21:53 |只看该作者
回复 9# prints


    我没有想钻牛角尖的。我自己那个命令,我自己验证下可以知道。

你抛出后面那个是想说明啥。。

我只是说明一个问题。

0 5 13 * 5 command

不是我想这么写,那比如说我就是看到别人这么写了。

crontab也接受了,我就想知道crontab怎么处理这样的情况的。有什么问题么?


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP