दूर से एक उबंटू मशीन का संस्करण कैसे खोजें?


20

मेरे पास उबंटू चलाने वाले 60 से 80 से अधिक सिस्टम हैं। उनमें से कुछ संस्करण 8.04 के साथ हैं और उनमें से कुछ नवीनतम संस्करण 10.10 के साथ हैं। अब हम सभी पुराने उबंटू संस्करण को नए संस्करण में अपग्रेड करने की प्रक्रिया में हैं। हर उबंटू प्रणाली पर स्विच करना और पुराने उबंटू संस्करण के नोट लेना और फिर अपग्रेड करना मुश्किल है। मेरे पास इन सभी मशीनों के आईपी पते एक फाइल में हैं। इसलिए मैं एक सरल बैश स्क्रिप्ट की तलाश कर रहा हूं जो कार्य को स्वचालित करेगी। मुझे उम्मीद है कि आउटपुट इस तरह दिखेगा:

172.29.34.40 ubuntu 10.04
172.29.34.41 ubuntu 8.04
172.29.34.42 ubuntu 8.10

और इतने पर .. क्या कोई मेरी मदद कर सकता है?

जवाबों:


31

आप उबंटू संस्करण का उपयोग कर प्राप्त कर सकते हैं

$ lsb_release -s -d
Ubuntu 10.04.1 LTS

यदि आप इसे स्वचालित करना चाहते हैं, तो एक बैश स्क्रिप्ट लिखें, जो स्टड से मेजबानों की सूची पढ़ती है और 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

इसे निष्पादन योग्य ( chmod a+x versions.sh), और निष्पादित करने के लिए याद करते हुए, इसे version.sh के रूप में सहेजें

$ versions.sh < ips.txt

मैं एकल कमांड को निष्पादित करके या सरल स्क्रिप्ट द्वारा ubuntu चलाने वाली सभी 80 प्रणालियों के लिए आउटपुट चाहता हूं। मुझे पता है कि एक मशीन में ubuntu संस्करण को खोजना है।
karthick87 14

जब आप टिप्पणी पोस्ट करते हैं, तो मैं पहले ही अपना उत्तर अपडेट कर रहा था। उम्मीद है की वो मदद करदे।
एडम बर्टेक

btw, $ ip में user@hostजानकारी हो सकती है ।
एंटीवायरल

हाँ, यह ssh द्वारा स्वीकृत कुछ भी हो सकता है, जब तक कि यह अंतरिक्ष अलग नहीं हो जाता।
एडम बर्टेक

क्या आप चाहते हैं कि मैं इसे बैश स्क्रिप्ट के रूप में बनाऊं? और $ IP में सभी मशीनों के आईपी पते होने चाहिए?
karthick87

3

मान लें कि वे SSH सर्वर चला रहे हैं, तो आप SSH के पैकेज संस्करण के आधार पर Ubuntu संस्करणों का अनुमान लगाने की कोशिश कर सकते हैं:

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

Opensh के वर्तमान संस्करण लॉन्चपैड 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फ़ाइल में "डेबियनबैनर नो" हो सकता है , लेकिन ओपनएसएसएच का अपस्ट्रीम संस्करण अभी भी दिखाई दे रहा है जो सिस्टम को अभी भी पहचानने के लिए पर्याप्त है (अब तक उबंटू के प्रत्येक रिलीज में ओपनएसएसएच का एक अलग अपस्ट्रीम संस्करण है)।


मुझे यह पसंद है - यह संभावित रूप से सबसे कम श्रम-गहन समाधान है। यह आपको 80 मेजबानों पर कुछ भी स्थापित करने की आवश्यकता नहीं है।
DrSAR
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.