Tengo más de 60 a 80 sistemas que ejecutan Ubuntu. Algunos de ellos son con la versión 8.04 y otros con la última versión 10.10. Ahora estamos en el proceso de actualizar todas las versiones anteriores de Ubuntu a una versión más nueva. Es difícil encender cada sistema Ubuntu y tomar notas de versiones anteriores de Ubuntu y luego actualizar. Tengo las direcciones IP de todas estas máquinas en un texto un archivo. Así que estoy buscando un simple script de bash que automatice la tarea. Estoy esperando que la salida se vea así:
172.29.34.40 ubuntu 10.04
172.29.34.41 ubuntu 8.04
172.29.34.42 ubuntu 8.10
y así sucesivamente .. ¿Puede alguien ayudarme?
Puede obtener la versión de Ubuntu usando
$ lsb_release -s -d Ubuntu 10.04.1 LTS
Si desea automatizar eso, escriba un script Bash que lea la lista de hosts desde la entrada estándar y ejecute el comando sobre SSH. Algo como
#!/bin/bash while read host; do echo -n "$host: " ssh "$host" lsb_release -s -d < /dev/null done
Si tiene una cuenta de usuario común en todas las máquinas a las que desea conectarse, entonces esto debería ser lo que está buscando
#!/bin/bash RUSER="username" while read host; do echo -n "$host: " ssh "$RUSER@$host" lsb_release -s -d < /dev/null done
Guárdelo como versiones.sh, recuerde hacerlo ejecutable ( chmod a+x versions.sh
), y ejecute
$ versions.sh < ips.txt
Suponiendo que estén ejecutando servidores SSH, podría intentar adivinar las versiones de Ubuntu basadas en la versión del paquete de SSH:
$ nc IP.IP.IP.IP 22 SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5 Ctrl-C
Las versiones actuales de openssh se enumeran en 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
Así que en mi ejemplo anterior, 5.5p1
con una versión Debian de -4ubuntu5
parece ser un sistema Maverick de Ubuntu 10.10.
Algunos servidores pueden tener “DebianBanner no” en su /etc/ssh/sshd_config
, pero la versión ascendente de OpenSSH sigue siendo visible, lo cual es suficiente para identificar el sistema (cada versión de Ubuntu tiene una versión diferente de OpenSSH) .