发现ruby ssh后, 欣喜了一阵子, 但是使用后发现一个问题, 就是有些命令执行的时候和手工执行的时候效果不一样。
简单的命令, 如pwd, ls -l是没有问题的, 能够正确得到结果。
但是如果是运行shell脚本, 或者 cd 命令,就会失败, 很奇怪吧, 不知道诸位是如何解决的?
puts Net::SSH::Version::CURRENT
ssh=Net::SSH.start(board["ip"], board["root_username"], :password => board["root_password"],:config => true,:port=> 22)
puts DateTime.now
result=ssh.exec! "export PATH=$PATH:/bin:/usr/bin:/usr/sbin:/sbin"
puts resul
puts "start to echo lib path"
result=ssh.exec! "echo $LD_LIBRARY_PATH"
puts result
#result=ssh.exec!("/usr/app/bin/apdiag")
result=ssh.exec("/usr/app/bin/apdiag")
puts result
result=ssh.exec! "pwd"
puts result
运行结果如下:
nil
start to echo lib path
#<Net::SSH::Connection::Channel:0x2926d6c>
/home/root
/usr/app/bin/apdiag: error while loading shared libraries: libmem.so: cannot open shared object file: No such file or directory
2009-06-05T14:24:34+08:00
total 336
drwxr-xr-x 6 7983 82 1024 Jun 4 08:33 build
-rw------- 1 root root 337920 Jun 4 08:29 build.tar
很奇怪啊
简单的命令, 如pwd, ls -l是没有问题的, 能够正确得到结果。
但是如果是运行shell脚本, 或者 cd 命令,就会失败, 很奇怪吧, 不知道诸位是如何解决的?
puts Net::SSH::Version::CURRENT
ssh=Net::SSH.start(board["ip"], board["root_username"], :password => board["root_password"],:config => true,:port=> 22)
puts DateTime.now
result=ssh.exec! "export PATH=$PATH:/bin:/usr/bin:/usr/sbin:/sbin"
puts resul
puts "start to echo lib path"
result=ssh.exec! "echo $LD_LIBRARY_PATH"
puts result
#result=ssh.exec!("/usr/app/bin/apdiag")
result=ssh.exec("/usr/app/bin/apdiag")
puts result
result=ssh.exec! "pwd"
puts result
运行结果如下:
nil
start to echo lib path
#<Net::SSH::Connection::Channel:0x2926d6c>
/home/root
/usr/app/bin/apdiag: error while loading shared libraries: libmem.so: cannot open shared object file: No such file or directory
2009-06-05T14:24:34+08:00
total 336
drwxr-xr-x 6 7983 82 1024 Jun 4 08:33 build
-rw------- 1 root root 337920 Jun 4 08:29 build.tar
很奇怪啊