我们在 Windows 10 上使用 Powershell 版本 5.1.18362.1171。
如果我们运行以下命令:
ssh -i id_rsa [email protected] 'exec bash -l';
然后在打开的 bash 控制台中手动运行此命令:
/usr/bin/o3d3xx-reboot
该脚本运行正常,没有错误,最后重新启动。但是,如果我们尝试使用以下代码自动运行此代码,它将始终因重新启动脚本中的某些错误而失败:
ssh -i id_rsa [email protected] '/usr/bin/o3d3xx-reboot';
有没有什么方法可以运行这个脚本/二进制文件而无需手动输入,就像它在第一个版本中工作的方式一样?
答案1
除非您向我们提供日志文件来描述重启未发生的原因,否则很难猜测问题是什么。
您可以通过在 ssh 中调用 bash、执行命令并立即终止 ssh 连接来解决该问题,如下所示:
ssh you@yourserver "bash --rcfile <(echo '. ~/.bashrc; /usr/bin/o3d3xx-reboot; exit') -l"
bash
您使用 调用的事实-l
似乎表明您的o3d3xx-reboot
可执行文件需要 中的某些内容/etc/profile
。您可能希望在那里找到一个不那么棘手的解决方案。
答案2
ssh -i id_rsa myuser@myip "bash --login -c 'cd /usr/bin/ && o3d3xx-reboot && exit'";
似乎缺少环境变量,因此脚本不起作用。我使用了上面的脚本,它以与我登录并手动输入命令相同的方式加载环境。