我有超过 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)
| 归档时间: |
|
| 查看次数: |
19107 次 |
| 最近记录: |