कैसे एक बैश स्क्रिप्ट से आपके सिस्टम का भौगोलिक स्थान प्राप्त करें
आप खुले एपीआई और एक साधारण बैश स्क्रिप्ट का उपयोग करके दूरस्थ लिनक्स सिस्टम की भौगोलिक स्थिति का पता लगा सकते हैं। सर्वर को जियोलोकिंग करने से आप इसे भौतिक दुनिया में ट्रैक करने में मदद कर सकते हैं, यह सुनिश्चित करते हुए कि सर्वर क्षेत्रीय हॉटस्पॉट में स्थित हैं.
इंटरनेट के प्रत्येक सर्वर में एक सार्वजनिक-सामना करने वाला आईपी पता होता है। यह या तो सीधे सर्वर को सौंपा जाता है, या एक राउटर को सौंपा जाता है जो उस सर्वर पर ट्रैफ़िक भेजता है। आईपी पते हमें एक सुराग देते हैं कि वह सर्वर दुनिया में कहां स्थित है। हम इस जियोलोकेशन डेटा को दो ओपन एपीआई के माध्यम से प्राप्त कर सकते हैं, जो 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
फ़ाइल। हम इस डेटा का उपयोग दिलचस्प चीजों को करने के लिए कर सकते हैं, जैसे कि हमारे सर्वर को मानचित्र पर प्लॉट करना और साथ ही ट्रैफ़िक लॉग के साथ जियोलोकेशन का संयोजन यह देखने के लिए कि दुनिया में हमारे सर्वर हॉटस्पॉट कहां हैं.