Como encontrar a versão de uma máquina Ubuntu remotamente?

20

Eu tenho mais de 60 a 80 sistemas executando o Ubuntu. Alguns deles estão com a versão 8.04 e alguns deles estão com a última versão 10.10. Agora estamos no processo de atualizar toda a versão antiga do Ubuntu para uma versão mais recente. É difícil ligar todos os sistemas Ubuntu, tomar notas da versão mais antiga do Ubuntu e depois atualizar. Eu tenho endereços IP de todas essas máquinas em um arquivo de texto. Então, estou procurando um script simples que automatize a tarefa. Espero que a saída seja assim:

172.29.34.40 ubuntu 10.04
172.29.34.41 ubuntu 8.04
172.29.34.42 ubuntu 8.10

e assim por diante .. Alguém pode me ajudar?

    
por karthick87 31.03.2011 / 16:55

2 respostas

30

Você pode obter a versão do Ubuntu usando

$ lsb_release -s -d
Ubuntu 10.04.1 LTS

Se você quiser automatizar isso, escreva um script Bash que leia a lista de hosts do stdin e execute o comando sobre o SSH. Algo como

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

Se você tiver uma conta de usuário comum em todas as máquinas às quais deseja se conectar, essa deve ser a que você está procurando

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

Salve-o como versions.sh, lembrando-se de torná-lo executável ( chmod a+x versions.sh ) e execute

$ versions.sh < ips.txt
    
por Adam Byrtek 31.03.2011 / 16:57
3

Supondo que eles estejam executando servidores SSH, você pode tentar adivinhar as versões do Ubuntu com base na versão do pacote do SSH:

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

As versões atuais do openssh estão listadas no link do Launchpad:

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

Então, no meu exemplo acima, 5.5p1 com uma versão Debian de -4ubuntu5 parece ser um sistema Ubuntu 10.10 Maverick.

Alguns servidores podem ter "DebianBanner não" no arquivo /etc/ssh/sshd_config , mas a versão upstream do OpenSSH ainda é visível, o que é suficiente para identificar o sistema ainda (cada versão do Ubuntu tem uma versão diferente do OpenSSH) .

    
por Kees Cook 01.04.2011 / 01:31

Tags