원격으로 Ubuntu 컴퓨터 버전을 찾는 방법은 무엇입니까?


20

우분투를 실행하는 60-80 개 이상의 시스템이 있습니다. 그들 중 일부는 8.04 버전이고 일부는 최신 버전 10.10입니다. 이제 모든 이전 Ubuntu 버전을 최신 버전으로 업그레이드하는 중입니다. 모든 Ubuntu 시스템을 켜고 이전 Ubuntu 버전을 기록한 다음 업그레이드하기는 어렵습니다. 이 모든 컴퓨터의 IP 주소는 텍스트 파일로되어 있습니다. 그래서 작업을 자동화 할 간단한 bash 스크립트를 찾고 있습니다. 출력은 다음과 같을 것으로 예상됩니다.

172.29.34.40 우분투 10.04
172.29.34.41 우분투 8.04
172.29.34.42 우분투 8.10

등등 .. 누구든지 나를 도울 수 있습니까?

답변:


31

다음을 사용하여 우분투 버전을 얻을 수 있습니다

$ lsb_release -s -d
Ubuntu 10.04.1 LTS

이를 자동화하려면 stdin에서 호스트 목록을 읽고 SSH를 통해 명령을 실행하는 Bash 스크립트를 작성하십시오. 같은 것

#!/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

실행 파일 ( chmod a+x versions.sh) 로 만드는 것을 잊지 말고 versions.sh로 저장 하고 실행하십시오.

$ versions.sh < ips.txt

단일 명령이나 간단한 스크립트로 우분투를 실행하는 모든 80 시스템의 출력을 원합니다. 단일 컴퓨터에서 우분투 버전을 찾는 것을 알고 있습니다.
karthick87

의견을 게시했을 때 이미 답변을 업데이트하고있었습니다. 희망이 도움이됩니다.
Adam Byrtek

btw, $ ipuser@host정보를 포함 할 수 있습니다 .
antivirtel

예, 공간이 분리되어 있으면 ssh에서 허용되는 모든 것이 될 수 있습니다.
Adam Byrtek

bash 스크립트로 만들고 싶습니까? $ IP에 모든 컴퓨터의 IP 주소가 있어야합니까?
karthick87

3

SSH 서버를 실행한다고 가정하면 SSH의 패키지 버전을 기반으로 Ubuntu 버전을 추측 할 수 있습니다.

$ 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데비안 버전의 -4ubuntu5룩은 우분투 10.10 매버릭 시스템입니다.

일부 서버에는 /etc/ssh/sshd_config파일 에 "DebianBanner no" 가있을 수 있지만 OpenSSH의 업스트림 버전은 여전히 ​​표시되어 시스템을 식별하기에 충분합니다 (지금까지 Ubuntu의 각 릴리스에는 다른 업스트림 버전의 OpenSSH가 있음).


나는 이것을 좋아한다-이것은 잠재적으로 가장 노동 집약적 솔루션이다. 80 개의 호스트에 아무것도 설정하지 않아도됩니다.
DrSAR
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.