如何远程查找 Ubuntu 机器的版本?

kar*_*k87 20 bash scripts

我有超过 60 到 80 个运行 Ubuntu 的系统。其中一些是 8.04 版本,一些是最新版本 10.10。现在我们正在将所有旧的 Ubuntu 版本升级到新版本。很难打开每个 Ubuntu 系统并记录旧的 Ubuntu 版本然后升级。我在一个文本文件中拥有所有这些机器的 IP 地址。所以我正在寻找一个简单的 bash 脚本来自动执行任务。我希望输出看起来像这样:

172.29.34.40 ubuntu 10.04
172.29.34.41 ubuntu 8.04
172.29.34.42 ubuntu 8.10

等等.. 谁能帮帮我?

Ada*_*tek 30

您可以使用以下命令获取 Ubuntu 版本

$ lsb_release -s -d
Ubuntu 10.04.1 LTS
Run Code Online (Sandbox Code Playgroud)

如果您想自动执行此操作,请编写一个 Bash 脚本,该脚本从 stdin 读取主机列表并通过 SSH 执行命令。就像是

#!/bin/bash
while read host; do
   echo -n "$host: "
   ssh "$host" lsb_release -s -d < /dev/null
done
Run Code Online (Sandbox Code Playgroud)

如果您在要连接的所有计算机上都有一个通用用户帐户,那么这应该是您要查找的

#!/bin/bash
RUSER="username"
while read host; do
   echo -n "$host: "
   ssh "$RUSER@$host" lsb_release -s -d < /dev/null
done
Run Code Online (Sandbox Code Playgroud)

保存为versions.sh,记得设置为可执行( chmod a+x versions.sh),然后执行

$ versions.sh < ips.txt
Run Code Online (Sandbox Code Playgroud)