Як віддалено знайти версію машини Ubuntu?


20

У мене понад 60 до 80 систем, що працюють під управлінням Ubuntu. Деякі з них мають версію 8.04, а деякі - з останньою версією 10.10. Зараз ми перебуваємо в процесі оновлення всієї старшої версії Ubuntu до нової версії. Важко включити кожну систему Ubuntu та робити нотатки старішої версії Ubuntu, а потім оновити. Я маю IP-адреси всіх цих машин у текстовому файлі. Тому я шукаю простий скрипт, який автоматизує завдання. Я очікую, що вихід буде виглядати приблизно так:

172.29.34.40 ubuntu 10.04
172.29.34.41 ubuntu 8.04
172.29.34.42 ubuntu 8.10

і т. д. Чи може мені хтось допомогти?

Відповіді:


31

Ви можете отримати версію Ubuntu за допомогою

$ lsb_release -s -d
Ubuntu 10.04.1 LTS

Якщо ви хочете автоматизувати це, напишіть Bash-скрипт, який читає список хостів із stdin та виконує команду над SSH. Щось на зразок

#!/bin/bash
while read host; do
   echo -n "$host: "
   ssh "$host" lsb_release -s -d < /dev/null
done

Якщо у вас є один загальний обліковий запис користувача на всіх машинах, до яких ви хочете підключитися, це саме те, що ви шукаєте

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

Збережіть його як version.sh, пам’ятаючи, щоб зробити його виконуваним ( chmod a+x versions.sh) та виконати

$ versions.sh < ips.txt

Я хочу вивести для всіх 80 систем, що працюють на ubuntu, виконавши одну команду або простий скрипт. Я знаю, щоб знайти версію ubuntu в одній машині.
karthick87

Я вже оновлював свою відповідь, коли ви публікували коментар. Сподіваюся, що це допомагає.
Адам Біртек

btw, $ ip може містити user@hostінформацію.
антивірус

Так, ssh може прийняти все, що завгодно, якщо його розділено.
Адам Біртек

Ви хочете, щоб я робив це як скрипт bash? І $ IP повинен містити ip адреси всіх машин?
karthick87

3

Якщо припустити, що вони працюють з серверами SSH, ви можете спробувати відгадати версії Ubuntu на основі пакетної версії SSH:

$ nc IP.IP.IP.IP 22
SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5
Ctrl-C

Поточні версії openssh перелічені в Launchpad https://launchpad.net/distros/ubuntu/+source/openssh :

openssh | 1:4.2p1-7ubuntu3.5 | dapper-updates/main
openssh | 1:4.7p1-8ubuntu3   | hardy-updates/main
openssh | 1:5.1p1-6ubuntu2   | karmic/main
openssh | 1:5.3p1-3ubuntu6   | lucid-updates/main
openssh | 1:5.5p1-4ubuntu5   | maverick-updates/main
openssh | 1:5.8p1-1ubuntu2   | natty/main

Отже, у моєму вище прикладі, 5.5p1версія Debian -4ubuntu5виглядає як система Ubuntu 10.10 Maverick.

Деякі сервери можуть мати "DebianBanner ні" у своєму /etc/ssh/sshd_configфайлі, але верхня версія OpenSSH все ще видно, що достатньо для ідентифікації системи (кожен випуск Ubuntu поки що має різну версію OpenSSH вгору).


Мені це подобається - це потенційно найменш трудомістке рішення. Це не вимагає від вас нічого встановлювати на 80 хостах.
DrSAR
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.