如何在登录后在 PuTTY 中运行远程命令

如何在登录后在 PuTTY 中运行远程命令

在我的 Windows 机器上,我尝试自动登录到远程服务器(它可以工作),然后运行命令(我想重新启动它,但这并不重要)

我使用 bat 文件登录并运行命令:

C:\path\to\putty.exe -ssh -load [Sessionname] -l [user] -pw [password] -m C:\path\to\commands.txt

或者这个

C:\path\to\putty.exe plink -ssh -load [Sessionname] -l [user] -pw [password] -m C:\path\to\commands.txt

在commands.txt中是:

echo "hi there"

或者

reboot

当我运行它时,控制台打开又关闭,什么都没有发生。我想我犯了一些错误,我读了所有关于这个的内容,但我无法解决它。有什么帮助吗?

答案1

引用文档

-m选项执行的功能与 PuTTY 配置框的 SSH 面板中的“远程命令”框类似(请参阅第 4.18.1 节)。但是,该-m选项需要指定一个本地文件名,然后它将从该文件读取命令。

并引用第 4.18.1 节:

在 SSH 中,您不必在服务器上运行常规 shell 会话。相反,您可以选择运行单个特定命令(例如邮件用户代理)。如果您想这样做,请在“远程命令”框中输入该命令。

请注意,大多数服务器将在执行该命令后关闭会话。

“相反”一词意味着这不是在将控制权交给您之前在 shell 中运行的命令。这是一个运行的命令 而不是外壳

在您的示例中,它echo在某个未知的地方完成了其工作,然后会话终止。

简而言之,您不能使用它-m来执行命令 在远程 shell 中(因为没有)。

相关内容