จะค้นหารุ่นของเครื่อง Ubuntu จากระยะไกลได้อย่างไร


20

ฉันมีมากกว่า 60 ถึง 80 ระบบที่ใช้งาน Ubuntu บางตัวมาพร้อมกับเวอร์ชัน 8.04 และบางตัวมาพร้อมกับเวอร์ชันล่าสุด 10.10 ตอนนี้เรากำลังอยู่ในขั้นตอนการอัพเกรดอูบุนตูที่เก่ากว่าทั้งหมดไปเป็นเวอร์ชั่นที่ใหม่กว่า เป็นการยากที่จะเปิดทุกระบบ 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

บันทึกเป็น versions.sh โดยไม่ลืมว่าจะทำให้สามารถเรียกใช้งานได้ ( chmod a+x versions.sh) และดำเนินการได้

$ versions.sh < ips.txt

ฉันต้องการเอาท์พุทสำหรับระบบ 80 ทั้งหมดที่รันอูบุนตูโดยการรันคำสั่งเดียวหรือโดยสคริปต์แบบง่ายฉันรู้ว่าจะหาเวอร์ชั่นของอูบุนตูได้ในเครื่องเดียว
karthick87

ฉันอัปเดตคำตอบแล้วเมื่อคุณโพสต์ความคิดเห็น หวังว่าจะช่วย
Adam Byrtek

btw, $ ipอาจมีuser@hostข้อมูล
antivirtel

ใช่มันสามารถเป็นอะไรก็ได้ที่ยอมรับโดย ssh ตราบใดที่มีการแยกพื้นที่
Adam Byrtek

คุณต้องการให้ฉันเป็นสคริปต์ทุบตีหรือไม่และ $ 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 ระบบที่ไม่ฝักใฝ่ฝ่ายใด

เซิร์ฟเวอร์บางตัวอาจมี "DebianBanner no" ใน/etc/ssh/sshd_configไฟล์ของพวกเขาแต่รุ่นอัปสตรีมของ OpenSSH ยังคงปรากฏซึ่งเพียงพอที่จะระบุระบบยัง (ทุกรุ่นของ Ubuntu จนถึงรุ่นอัปสตรีมที่แตกต่างกันของ OpenSSH)


ฉันชอบสิ่งนี้ - นี่อาจเป็นทางออกที่ใช้แรงงานน้อยที่สุด ไม่ต้องการให้คุณตั้งค่าอะไรบนโฮสต์ 80 รายการ
DrSAR
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.