मुखपृष्ठ » कैसे » कैसे एक बैश स्क्रिप्ट से आपके सिस्टम का भौगोलिक स्थान प्राप्त करें

    कैसे एक बैश स्क्रिप्ट से आपके सिस्टम का भौगोलिक स्थान प्राप्त करें

    तोरिया / Shutterstock.com

    आप खुले एपीआई और एक साधारण बैश स्क्रिप्ट का उपयोग करके दूरस्थ लिनक्स सिस्टम की भौगोलिक स्थिति का पता लगा सकते हैं। सर्वर को जियोलोकिंग करने से आप इसे भौतिक दुनिया में ट्रैक करने में मदद कर सकते हैं, यह सुनिश्चित करते हुए कि सर्वर क्षेत्रीय हॉटस्पॉट में स्थित हैं.

    इंटरनेट के प्रत्येक सर्वर में एक सार्वजनिक-सामना करने वाला आईपी पता होता है। यह या तो सीधे सर्वर को सौंपा जाता है, या एक राउटर को सौंपा जाता है जो उस सर्वर पर ट्रैफ़िक भेजता है। आईपी ​​पते हमें एक सुराग देते हैं कि वह सर्वर दुनिया में कहां स्थित है। हम इस जियोलोकेशन डेटा को दो ओपन एपीआई के माध्यम से प्राप्त कर सकते हैं, जो ipinfo.co और आईपी विजिलेंट द्वारा प्रदान किया गया है और इसका उपयोग सर्वर या अन्य रिमोट सिस्टम से जुड़े शहर, राज्य और देश को देखने के लिए किया जाता है। यह आपको एक सटीक जीपीएस स्थान नहीं देता है; यह आपको आईपी पते के सामान्य क्षेत्र को देखने की सुविधा देता है.

    रिमोट सिस्टम से कनेक्ट करें

    आप लिनक्स सर्वर या अन्य दूरस्थ सिस्टमों पर निम्नलिखित कमांड चला रहे हैं जिन्हें आप जियोलेट करना चाहते हैं, इसलिए आपको सर्वर से कनेक्ट करना होगा और पहले उस पर एक शेल एक्सेस करना होगा। उदाहरण के लिए, आप SSH के माध्यम से जुड़ सकते हैं। आप इसके स्थान को खोजने के लिए अपने स्थानीय सिस्टम पर कमांड चला सकते हैं, लेकिन आप शायद पहले से ही जानते हैं कि आप कहां हैं!

    कर्ल और जेक स्थापित करें

    जियोलोकेशन एपीआई को एक्सेस करने के लिए हमें दो टूल्स चाहिए: कर्ल HTTP अनुरोध करने के लिए और  JQ JSON डेटा को संसाधित करने के लिए जो हमें वापस मिलता है। एक टर्मिनल खोलें और उपयोग करें  apt-get इन उपकरणों को उबंटू या डेबियन-आधारित सिस्टम पर स्थापित करने के लिए। अन्य लिनक्स वितरण पर, इसके बजाय अपने लिनक्स वितरण के पैकेज इंस्टॉलेशन टूल का उपयोग करें.

    sudo apt-get install कर्ल जक

    सर्वर के सार्वजनिक आईपी पते का पता लगाएं

    जियोलोकेशन डेटा प्राप्त करने से पहले हमें सर्वर के सार्वजनिक आईपी पते की भी आवश्यकता होती है। उपयोग कर्ल अपनी टर्मिनल विंडो में ipinfo.io पर एक एपीआई कॉल करने के लिए.

    कर्ल https://ipinfo.io/ip

    एपीआई से स्थान डेटा प्राप्त करें

    अब जब हमारे पास सर्वर का सार्वजनिक आईपी है, तो हम जियोलोकेशन डेटा प्राप्त करने के लिए ipvigilante.com के एपीआई पर कॉल कर सकते हैं। बदलने के पिछले कमांड में वापस आए पते के साथ.

    कर्ल https://ipvigilante.com/

    आइए एक नज़र डालते हैं कि इस कॉल से हमें कौन सा डेटा वापस मिलता है:

    एपीआई शहर, देश और महाद्वीप को लौटाता है, जिसमें हमारा सर्वर रहता है। यदि हम इस सर्वर को संवादात्मक मानचित्र पर खींचना चाहते हैं, तो यह लगभग अक्षांश और देशांतर निर्देशांक भी लौटाता है। हम अपनी स्क्रिप्ट में "अक्षांश," "देशांतर," शहर_नाम, "और" देश_नाम "का उपयोग करेंगे।  JQ कमांड समझती है कि एपीआई डेटा को कैसे प्रोसेस करना है और इन चार फील्ड्स को बाहर निकालना है.

    एपीआई कॉल को स्वचालित करने के लिए एक स्क्रिप्ट बनाना

    हम एक स्क्रिप्ट बना सकते हैं जो जियोलोकेशन डेटा को पकड़ती है और इसे सीएसवी प्रारूप में एक फाइल पर लिखती है। डेटा नामक एक फाइल को लिखा जाएगा server_location.txt में / Tmp / निर्देशिका। अपना पसंदीदा संपादक खोलें और नाम की स्क्रिप्ट बनाएं geolocate.sh . नीचे दी गई स्क्रिप्ट सामग्री डालें, और अपने खुद के साथ आईपी पते को बदलना सुनिश्चित करें:

    " : //ipvigilante.com/$ PUBLIC_IP | \ jq '.data.latitude, .data.longitude, .data.city_name ,data.country_name' | \ _ पढ़ते हुए -r LATITUDE; do -r LONGITUDE पढ़े -r CITY read -r COUNTRY गूंज "$ LATITUDE, $ LONGITUDE, $ CITY, $ COUNTRY" | \ tr --delete \ "> \ $ OUTPUT_FILE किया गया 

    स्क्रिप्ट को सहेजें और टर्मिनल पर वापस जाएं। इस फ़ाइल पर निष्पादित अनुमति देकर, टर्मिनल से स्क्रिप्ट को निष्पादन योग्य बनाएं.

    chmod u + x geolocate.sh

    अब आप इसका परीक्षण करने के लिए तैयार हैं। चलाएं geolocate.sh स्क्रिप्ट और आउटपुट फ़ाइल की सामग्री की जाँच करें:

    ./geolocate.sh cat /tmp/server_location.txt 

    एक क्रोन जॉब के साथ एक बार जियोलोकेशन डेटा अपडेट करना

    आइए अपने सर्वर को उसके जियोलोकेशन को अपडेट करने के लिए क्रोन जॉब बनाएं और दिन में एक बार फाइल को सेव करें। दैनिक क्रॉन जॉब नामक एक फाइल को अपडेट करता है server_location.txt में / Tmp / सर्वर का फ़ोल्डर। 24-घंटे क्रोन जॉब बनाना उतना ही आसान है जितना कि हमारी स्क्रिप्ट को इसमें डालना /etc/cron.daily निर्देशिका। हमें अनुमति के मुद्दों से बचने के लिए फ़ाइल को रूट उपयोगकर्ता के रूप में कॉपी करने के लिए sudo कमांड का उपयोग करना चाहिए। कॉपी करने के लिए निम्न कमांड चलाएँ geolocate.sh को /etc/cron.daily निर्देशिका.

    sudo cp geolocate.sh /etc/cron.daily

    ये परिवर्तन तत्काल हैं, और हमारी सामग्री की सामग्री को अपडेट करने के लिए हर 24 घंटे में हमारी स्क्रिप्ट चलेगी /tmp/server_location.txt फ़ाइल। हम इस डेटा का उपयोग दिलचस्प चीजों को करने के लिए कर सकते हैं, जैसे कि हमारे सर्वर को मानचित्र पर प्लॉट करना और साथ ही ट्रैफ़िक लॉग के साथ जियोलोकेशन का संयोजन यह देखने के लिए कि दुनिया में हमारे सर्वर हॉटस्पॉट कहां हैं.