>直接登录Ubuntu(亲自) – 脚本成功
> ssh通过Bitvise客户端 – 脚本成功
> ssh通过Plink(通过调用plink.exe)和从交互式shell调用脚本(它是windows cmd.exe中的Ubuntu shell) – 脚本成功
> ssh通过.bat然后调用Plink – 脚本失败
脚本失败w / message:
error while loading shared libraries: libCint.so: cannot open shared object file: No such file or directory
其他帖子似乎是指libCint.so的安装/权限问题,但我知道情况并非如此,因为脚本在其他实例中正常工作,如上所示.
下面是我的.bat文件中的plink.exe行:
plink.exe !plink_ssh_details! myscript
通过.bat文件以这种方式调用时,上述脚本失败;再次注意,它直接从Ubuntu调用或者当我通过cmd.exe(使用plink.exe)或Bitvise客户端直接进入Ubuntu时成功.任何帮助,将不胜感激.
虽然Plink默认使用非交互式会话,但在命令行上指定命令时.
您的脚本可能依赖于特定设置的某些环境变量(如PATH).
很可能只为交互式会话设置变量.可能是因为它们是在仅为交互式会话执行(源)的启动脚本中进行了修改.
解决方案是:
>更正启动脚本以无条件地修改变量(即使对于非交互式会话).
>修改脚本不依赖于环境变量.
或者您可以获取配置文件脚本,请参阅Unable to run shell script with ktutil command from Windows using PLINK.
>强制Plink使用-t开关使用交互式会话
这不是推荐的解决方案,因为使用交互式会话来自动执行命令会带来令人讨厌的副作用.参见例如Is there a simple way to get rid of junk values that come when you SSH using Python’s Paramiko library and fetch output from CLI of a remote machine?
当使用“exec”通道执行命令时,Soem更加模糊的SSH服务器也会表现不同.见Plink : does not execute command.