免费注册 查看新帖 |

Chinaunix

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

ssh远程调用shell失败了为什么还返回0? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-30 21:55 |只看该作者 |倒序浏览
脚本里面做了如下操作:
ssh -n -l work hostname "ls -l subsystem"
FLAG=$?
if [ $FLAG -eq 0 ];then
ls ...........

脚本执行日志显示:
+ FLAG=0
+ '[' 0 -eq 0 ']'
ls: ls: 0
subsystem: No such file or directory

百思不得其解,自己另外做试验无法复现
不过这个现象已经出现2次了
请问一下ssh远程调用shell的顺序以及$?返回的是那个命令的结果呢?
谢谢

论坛徽章:
0
2 [报告]
发表于 2007-07-30 22:01 |只看该作者
顺便说一句,脚本运行的时候主机和登陆机的机器负载都比较大
不知道会不会是这个原因
正常情况下,应该是先返回ls: 0
然后是subsystem: No such file or directory
然后是FLAG=1
不过机器运行很占用资源的情况下
会先返回subsystem: No such file or directory
再返回ls: 0
也请大牛解释一下
谢谢

论坛徽章:
0
3 [报告]
发表于 2007-07-30 22:05 |只看该作者
我的结果似乎和你相反

  1. [root@test1 ~]# ssh 127.0.0.1 ls /initrd/
  2. [root@test1 ~]# echo $?
  3. 0
  4. [root@test1 ~]# ssh 127.0.0.1 ls /noexist
  5. ls: /noexist: 没有那个文件或目录
  6. [root@test1 ~]# echo $?
  7. 1
复制代码

论坛徽章:
0
4 [报告]
发表于 2007-07-30 22:12 |只看该作者
是啊,应该出和你的结果类似的正确结果的
就是因为我碰到了结果无法解释才发帖求救的。。。。。。。。
这个脚本会运行几天,不停轮询几百台机器,只有几台机器会出现这种诡异的情况
我怀疑是先返回了ssh的结果
FLAG被置成0之后才把ls的结果返回
(自己想想都觉得不可能,希望牛人能解答一下)

论坛徽章:
0
5 [报告]
发表于 2007-07-31 10:42 |只看该作者
有人能解释一下ssh远程调用的时候,返回值究竟是那个命令的返回值呢?
是ssh还是远程登录过去执行的命令?
谢谢

论坛徽章:
0
6 [报告]
发表于 2007-07-31 23:56 |只看该作者
原帖由 deldaemon 于 2007-7-31 10:42 发表
有人能解释一下ssh远程调用的时候,返回值究竟是那个命令的返回值呢?
是ssh还是远程登录过去执行的命令?
谢谢


您可以先提供你當初測試該問題所使用的發行版本嗎 ?

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP