在我的 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 中(因为没有)。