如何执行关机命令而不等待其终止

如何执行关机命令而不等待其终止

我们的局域网中有许多 ubuntu 计算机,我创建了一个脚本,使用 putty 和 m 参数从我的 windows 计算机远程运行到一组 linux 计算机

问题是,在脚本结束时有一个重新启动,所以 putty 会话的窗口不会消失,因为 linux 计算机在脚本运行完成之前重新启动,我的 windows 脚本超过 100 台 linux 计算机将导致 100 个打开的 putty 窗口!

我尝试了“shutdown -r +1”而不是“rebo​​ot”,但结果是一样的

我正在寻找一种重新启动 Linux 计算机的方法,但是必须执行和终止此命令而不等待倒计时,执行关机命令后该命令仍然存在,因此脚本不会终止!

谢谢

答案1

快速而粗略的方法:通过在命令后附加一个 & 符号来分叉关机命令&,然后退出脚本中的终端会话。参见例如12或任何有关 shell 脚本语法的教程。

更少黑客:寻找允许您同时管理多个主机的解决方案,而不是启动单个 PuTTY 进程来连接每个主机。参见例如Linux - 同时在多台机器上运行相同的命令

答案2

ansible 是实现这一目标和许多其他目标的另一种方法。

https://support.ansible.com/hc/en-us/articles/201958037-Reboot-a-server-and-wait-for-it-to-come-back

答案3

您是否尝试过使用 plink 和 pscp 代替 PuTTy?这里有一个较旧的 StackOverflow 线程,建议使用这些线程进行远程命令执行:

https://stackoverflow.com/questions/11001508/to-run-shell-script-with-parameters-on-windows-command-line-via-putty-exe

您熟悉 Cygwin 吗?它为您提供了真实 Linux 环境的合理模拟,其中包含大多数标准 Linux 工具。主页:https://www.cygwin.com/

也许您可以在 PC 上的虚拟机上运行 Linux 发行版?这样您就可以访问 Daniel 链接的帖子中提到的所有工具。而且由于这看起来像 CLI 的东西,您不需要为其保留大量的 RAM 或 HDD 空间。

编辑:

另一种可能的解决方案是拥有完整的 Linux 库:购买 RasPi。安装完成后,您可以让它在网络中的某个地方运行,然后通过 ssh 进入该网络执行此类管理任务。主页:http://www.raspberrypi.org/

相关内容