QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2240|回复: 15

">> " 输出重定的问题,请高手指点!

[复制链接]
发表于 2005-7-28 23:09:10 | 显示全部楼层 |阅读模式
我写了一个简单的脚本,想通过tracerout 两个服务器地址来判断网络故障,脚本如下:
  echo " BEGIN TIME:"
date
echo "-------- traceroute  download.gzidc.com----------"
traceroute 211.155.23.29
echo "----------traceroute  www.hk.hi.cn-----------------"
traceroute 218.77.178.12
echo " END TIME:"
date
echo "----------------------------end-----------------------"


之后我在 crontab  中设置了定时执行
15,30,45,59 * * * * /home/stao/wn.sh >>/home/stao/WNWB.leases

但是通过>> 输出的结果并不是traceroute 命令的执行结果,执行结果如下:

  Thu Jul 28 20:15:00 CST 2005
-------- traceroute  download.gzidc.com----------
----------traceroute  www.hk.hi.cn-----------------
END TIME:
Thu Jul 28 20:15:00 CST 2005
----------------------------end-----------------------
BEGIN TIME:
Thu Jul 28 20:30:00 CST 2005
-------- traceroute  download.gzidc.com----------
----------traceroute  www.hk.hi.cn-----------------
END TIME:
Thu Jul 28 20:30:00 CST 2005
----------------------------end-----------------------

而上面脚本直接,./xxx.sh 执行的话,却又是正常的,为什么?
百思不得其解? 请高手们指点一二
发表于 2005-7-29 12:42:45 | 显示全部楼层
可能是这样的:
date、echo这些是内部命令,运行脚本的时候是在当前进程里面进行,你重定向脚本的输出就是对当前进程重定向,因此date、echo的输出没有问题。但是traceroute是外部命令,脚本执行它的时候是在子进程中进行的。但是对父进程的重定向是不能影响子进程的输出,所以会出现你说的这种结果。
斑竹看看,不知道我说得对不对。
回复

使用道具 举报

 楼主| 发表于 2005-7-29 21:48:56 | 显示全部楼层
非常感谢,可是我直接在脚本内重定向比如
traceroute 211.155.23.29  >>/home/stao/xx.sh
用crontab 用时运行,也是不能重定向文件内?
回复

使用道具 举报

发表于 2005-7-29 23:46:31 | 显示全部楼层
你这样做是不是同时有两个进程在处理一个文件呢?试试source命令吧,如果不行的话,你还是另外找高人。不过解决了要给我说一下哦/。
回复

使用道具 举报

 楼主| 发表于 2005-7-30 05:33:01 | 显示全部楼层
不是两个进程处理同一个文件,当我在脚本内加上>> 后,我就把 crontab 内的>> 给取消了。谢谢。
回复

使用道具 举报

 楼主| 发表于 2005-8-5 10:12:13 | 显示全部楼层
晕了,都没有人碰到过嘛。。。
回复

使用道具 举报

发表于 2005-8-5 19:13:43 | 显示全部楼层
从你的输出看到,程序到达traceroute的时候立即返回了,并没有等待它执行结束,然后接着余下的部分.
traceroute 的执行还是有一段时间的 ,你可以用top监视一下.
回复

使用道具 举报

 楼主| 发表于 2005-8-6 13:24:52 | 显示全部楼层
你说的对,但是怎么解决呢? 为什么Traceroute 不能被正确的值行呢?
回复

使用道具 举报

发表于 2005-8-6 16:34:23 | 显示全部楼层
我这样 怎么没有问题?>!
回复

使用道具 举报

 楼主| 发表于 2005-8-6 19:34:06 | 显示全部楼层
如果你手功执行的话,当然没有问题,但是,如果你用Crontab 定时执行的话,就会出现这个问题,我没有测试过“> ” 写文件,我只是用了 >> 追加, 我试过两个不同发行版的Linux ,都存在这个问题。
回复

使用道具 举报

发表于 2005-8-6 20:11:28 | 显示全部楼层
[quote:b1bbe340ce="stao"]如果你手功执行的话,当然没有问题,但是,如果你用Crontab 定时执行的话,就会出现这个问题,我没有测试过“> ” 写文件,我只是用了 >> 追加, 我试过两个不同发行版的Linux ,都存在这个问题。[/quote]
那 你看这样行不: 把定向的功能代码 加到你的shell文件中!
不就 不用crontab 与>> 结合了吗
回复

使用道具 举报

 楼主| 发表于 2005-8-7 03:29:28 | 显示全部楼层
我刚开始写的 Shell 中是带有,>> 的,后来就是因为不行,才加到 crontab内,郁闷!
回复

使用道具 举报

发表于 2005-8-7 09:53:54 | 显示全部楼层
不可能吧
回复

使用道具 举报

 楼主| 发表于 2005-8-7 12:29:53 | 显示全部楼层
“不可能”这个想法,我当时大脑也出现过,但是事实总是事实。
 版主大哥,不信就试一下呗!
回复

使用道具 举报

发表于 2005-8-7 12:55:04 | 显示全部楼层
我觉得你说的怪怪的,你看看我的执行结果:
[lj@cool ~]$ cat tmp
echo " BEGIN TIME:"
date
echo "-------- traceroute download.gzidc.com----------"
traceroute 211.155.23.29 >> /home/lj/ll
echo "----------traceroute www.hk.hi.cn-----------------"
traceroute 218.77.178.12
echo " END TIME:"
date
echo "----------------------------end-----------------------"
[lj@cool ~]$ sh -x tmp
+ echo ' BEGIN TIME:'
BEGIN TIME:
+ date
日  8月  7 12:53:40 CST 2005
+ echo '-------- traceroute download.gzidc.com----------'
-------- traceroute download.gzidc.com----------
+ traceroute 211.155.23.29
traceroute to 211.155.23.29 (211.155.23.29), 30 hops max, 38 byte packets

[lj@cool ~]$ vi ll
[lj@cool ~]$ cat ll
1  th137001.ip.tsinghua.edu.cn (59.66.137.1)  0.418 ms  0.379 ms  0.357 ms
2  th128001.ip.tsinghua.edu.cn (59.66.128.1)  5.037 ms  4.190 ms  2.690 ms
3  th002078.ip.tsinghua.edu.cn (59.66.2.7  0.353 ms  0.344 ms  0.430 ms
4  th002017.ip.tsinghua.edu.cn (59.66.2.17)  0.450 ms  0.405 ms  0.339 ms
5  qhu0.cernet.net (202.112.38.69)  0.565 ms  0.565 ms  0.650 ms
6  202.112.62.78 (202.112.62.7  18.673 ms  18.650 ms  18.691 ms
7  gzwh4.cernet.net (202.112.46.70)  32.507 ms  32.132 ms  32.097 ms
8  202.112.53.10 (202.112.53.10)  32.331 ms  32.086 ms  32.337 ms
9  202.112.61.70 (202.112.61.70)  33.086 ms  32.657 ms  32.447 ms
10  202.97.15.129 (202.97.15.129)  55.533 ms *  66.851 ms
11  202.97.36.93 (202.97.36.93)  58.504 ms  42.458 ms *
12  202.97.40.118 (202.97.40.11  64.292 ms  44.963 ms  44.795 ms
13  * 61.140.17.5 (61.140.17.5)  48.029 ms *
14  * 61.144.0.81 (61.144.0.81)  66.579 ms *
15  61.144.6.113 (61.144.6.113)  58.750 ms  65.811 ms *
16  * 219.137.2.20 (219.137.2.20)  71.231 ms  69.481 ms
17  211.155.20.186 (211.155.20.186)  72.019 ms  62.930 ms  64.932 ms
18  211.155.23.29 (211.155.23.29)  69.302 ms  68.777 ms  73.417 ms
1  th137001.ip.tsinghua.edu.cn (59.66.137.1)  0.450 ms  0.467 ms  0.370 ms
2  th128001.ip.tsinghua.edu.cn (59.66.128.1)  1.846 ms  2.089 ms  4.639 ms
3  th002078.ip.tsinghua.edu.cn (59.66.2.7  0.404 ms  1.772 ms  0.394 ms
4  th002017.ip.tsinghua.edu.cn (59.66.2.17)  0.476 ms  0.386 ms  0.382 ms
5  qhu0.cernet.net (202.112.38.69)  0.529 ms  0.541 ms  0.605 ms
6  202.112.62.78 (202.112.62.7  18.704 ms  18.663 ms  18.656 ms
7  gzwh4.cernet.net (202.112.46.70)  32.485 ms  32.341 ms  32.326 ms
8  202.112.53.10 (202.112.53.10)  33.599 ms  32.356 ms  32.270 ms
9  202.112.61.70 (202.112.61.70)  32.272 ms  32.303 ms  32.264 ms
10  202.97.15.129 (202.97.15.129)  57.534 ms  61.738 ms  59.247 ms
11  * 202.97.36.93 (202.97.36.93)  51.350 ms  74.437 ms


上面的显示结果你观察下,按照我理解你的帖子的意思。我觉得我的执行结果没有什么错吧
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-10-3 06:23 , Processed in 0.062085 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表