Kuidas saada oma süsteemi geograafiline asukoht Bash Scriptist
Kaug-Linuxi süsteemi geograafilise asukoha leiate avatud API-de ja lihtsa bash-skripti abil. Serveri geodeerimine võib aidata teil seda füüsilises maailmas jälgida, tagades, et serverid asuvad piirkondlikes levialades.
Igal internetis asuval serveril on IP-aadress. See on kas otse serverile määratud või määratud ruuterile, mis saadab sellele serverile liikluse. IP-aadressid annavad meile vihje selle kohta, kus see server maailmas asub. Me võime saada need geolokatsiooniandmed läbi kahe avatud API-liidese, mida pakuvad ipinfo.co ja IP Vigilante ning kasutavad seda, et näha linna, riiki ja riiki, mis on seotud serveri või muu kaugsüsteemiga. See ei anna teile täpset GPS-asukohta; see võimaldab lihtsalt näha IP-aadressi üldist ala.
Ühendage kaugsüsteemiga
Linuxi serveris või muudes kaugsüsteemides, mida soovite geolokeerida, käivitatakse järgmised käsud, nii et peate esmalt ühendama serveriga ja pääsema sellele koorele. Näiteks võite ühendada SSH kaudu. Saate oma kohaliku süsteemi käske oma asukoha leidmiseks käivitada, aga te teate, kus sa juba oled!
Paigalda curl ja jq
Geolokatsiooni API-le juurdepääsuks on vaja kahte tööriista: curl
HTTP taotluste ja jq
töötleme JSON-andmeid, mida me tagasi saame. Avage terminal ja kasutage apt-get
paigaldada need tööriistad Ubuntu või Debian-põhistele süsteemidele. Teistes Linuxi distributsioonides kasutage selle asemel oma Linuxi pakettide installimise tööriista.
sudo apt-get install curl jq
Leidke serveri avalik IP-aadress
Enne geolokatsiooniandmete saamist on meil vaja ka serveri avalikku IP-aadressi. Kasutage curl
API-kõne tegemine ipinfo.io-le oma terminaliaknas.
curl https://ipinfo.io/ip
Hankige asukohateave API-lt
Nüüd, kui meil on serveri avalik IP, saame helistada ipvigilante.com API-le, et saada geograafilise asukoha andmed. Asenda eelmise käsu tagastanud aadressiga.
curl https://ipvigilante.com/
Vaatame lähemalt, millised andmed me sellest kõnest tagasi saame:
API tagastab linna, riigi ja kontinendi, kus meie server asub. Samuti tagastab see ligikaudse laius- ja pikkuskraadi koordinaadid, kui soovime selle serveri koostada interaktiivsel kaardil. Kasutame meie skriptis “laiuskraadi”, “pikkuskraadi”, “linna_nime” ja “riigi_nime”. The jq
käsk mõistab, kuidas API andmeid töödelda ja need neli välja välja tõmmata.
API-kõne automatiseerimiseks mõeldud skripti loomine
Saame luua skripti, mis haarab geolokatsiooniandmed ja kirjutab selle CSV-vormingus failile. Andmed kirjutatakse nimega fail server_location.txt
Euroopa / tmp /
kataloog. Avage oma lemmik toimetaja ja looge skript nimega geolocate.sh
. Sisestage allpool näidatud skripti sisu ja asenda kindlasti oma IP-aadress:
#! / bin / sh OUTPUT_FILE = / tmp / server_location.txt # Haara selle serveri avalik IP-aadress PUBLIC_IP = "curl -s https://ipinfo.io/ip" # Helista geolokatsioonirakenduse API-le ja lüüa väljundi curl-https : //ipvigilante.com/$ PUBLIC_IP | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name' | loe -r LATITUDE; loe -r LONGITUDE loe -r CITY loe -r COUNTRY kajab "$ LATITUDE, $ LONGITUDE, $ CITY, $ COUNTRY" | r - tühista "> OUTPUT_FILE tehtud"
Salvesta skript ja mine tagasi terminali. Tehke skript käivitatavaks terminalist, andes sellele failile täitmisloa.
chmod u + x geolocate.sh
Nüüd olete valmis seda katsetama. Käivita geolocate.sh
skript ja kontrollige väljundfaili sisu:
./geolocate.sh cat /tmp/server_location.txt
Geolokatsiooniandmete uuendamine kord päevas Cron Jobiga
Looge croni töö, et meie server oma geolokatsiooni värskendada ja salvestada faili üks kord päevas. Iga päev croni töö värskendab faili, mida kutsutakse server_location.txt
Euroopa / tmp /
serveri kausta. 24-tunnise croni töö loomine on sama lihtne kui meie skripti panemine /etc/cron.daily
kataloog. Me peame kasutama sudo käsku faili kopeerimiseks juurkasutajana, et vältida luba küsimusi. Käivitage kopeerimiseks järgmine käsk geolocate.sh
Euroopa /etc/cron.daily
kataloog.
sudo cp geolocate.sh /etc/cron.daily
Need muudatused on kohesed ja meie skript kestab iga 24 tunni tagant, et värskendada /tmp/server_location.txt
faili. Me saame neid andmeid kasutada huvitavate asjade tegemiseks, näiteks meie serverite kaardistamine kaardil ja geolokatsiooni ühendamine liikluslogidega, et näha, kus meie serverid on meie serveri leviala..