免费注册 查看新帖 |

Chinaunix

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

关于在远程和本地同步执行某个命令的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-20 17:37 |只看该作者 |倒序浏览
本帖最后由 yizhongchuanqi 于 2011-09-21 10:50 编辑

重新编辑了下帖子,哪位大师帮忙看看这个程序出错在哪里啊?192.168.213.152已做过rsa认证
#cat test.sh

#!/bin/sh
echo "start"
ssh -p 22 root@192.168.213.152 /bin/sh <<EOF
        iostat 1 10  &
        echo haha
EOF

echo "local sar"
sar 1 10  &
echo "start wait"
wait
echo "end"

运行上面的程序以后卡住不动了,停在在远程执行iostat的这一步上面,愿意是希望可以在本地和远程同时执行sar和iostat这个命令

论坛徽章:
0
2 [报告]
发表于 2011-09-21 08:14 |只看该作者
自己顶

论坛徽章:
1
天秤座
日期:2013-10-23 13:20:42
3 [报告]
发表于 2011-09-21 10:32 |只看该作者
&的作用,看来你是知道了。
如果没有&,会发生什么了,那就会这样,要等到sar 1 100 > 1.log 执行完,才会执行下面的语句。这样就达不到你想“希望可以在本地和远程同时执行sar这个命令”
而用&,将这个命令的执行放到后台,那就可以继续执行下面的命令了。

论坛徽章:
0
4 [报告]
发表于 2011-09-21 10:48 |只看该作者
&的作用,看来你是知道了。
如果没有&,会发生什么了,那就会这样,要等到sar 1 100 > 1.log 执行完,才会 ...
jerryjzm 发表于 2011-09-21 10:32



    我用了sar 1 100> 1.log& 还是等远程的执行完了才开始执行本地的...

论坛徽章:
1
天秤座
日期:2013-10-23 13:20:42
5 [报告]
发表于 2011-09-21 10:55 |只看该作者
ssh -p 22 root@192.168.213.152 /bin/sh <<EOF
        iostat 1 10  &
        echo haha
EOF
上面一部分,用不用&,倒不会,毕竟是甩给ssh执行去了。下面是的部门是有影响的。

论坛徽章:
0
6 [报告]
发表于 2011-09-21 11:56 |只看该作者
ssh -p 22  /bin/sh
jerryjzm 发表于 2011-09-21 10:55



echo "start"
ssh -p 22 root@192.168.213.152 /bin/sh <<EOF
        iostat 1 10  > 1.log &
EOF
echo "local "

这个时候echo “local"并不会立即执行,

echo "start"
ssh -p 22 root@192.168.213.152 /bin/sh <<EOF
        iostat 1 10  > 1.log 2>&1 &
EOF
echo "local "

这个时候echo local 就立刻执行了,这是为什么呢?

论坛徽章:
1
天秤座
日期:2013-10-23 13:20:42
7 [报告]
发表于 2011-09-21 11:58 |只看该作者
看来是需要调试了
sh -x 你的脚步,看看到底执行了什么?

论坛徽章:
0
8 [报告]
发表于 2011-09-21 13:15 |只看该作者
回复 7# jerryjzm


    echo "start"
ssh -p 22 root@192.168.213.152 /bin/sh <<EOF
        iostat 1 10  > 1.log &
EOF
echo "local "

这个时候echo “local"并不会立即执行,sh -x ./1结果:
+ echo start
start
+ ssh -p 22 root@192.168.213.152 /bin/sh
haha
+ echo 'local sar'
local sar
+ echo 'start wait'
start wait
+ wait
+ sar 1 3
+ echo end
end


另外一种
echo "start"
ssh -p 22 root@192.168.213.152 /bin/sh <<EOF
        iostat 1 10  > 1.log 2>&1 &
EOF
echo "local "

echo local立即执行,2.log正常生成的,sh -x ./1 的结果:
+ echo start
start
+ ssh -p 22 root@192.168.213.152 /bin/sh
haha
+ echo 'local sar'
local sar
+ echo 'start wait'
start wait
+ wait
+ sar 1 3
+ echo end
end

看不到到底执行了什么。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP