Mājas lapa » » Kā iegūt sistēmas ģeogrāfisko atrašanās vietu no bash skripta

    Kā iegūt sistēmas ģeogrāfisko atrašanās vietu no bash skripta

    Toria / Shutterstock.com

    Tālvadības Linux sistēmas ģeogrāfisko atrašanās vietu var atrast, izmantojot atvērtas API un vienkāršu bash skriptu. Servera ģeolokācija var palīdzēt jums izsekot to fiziskajā pasaulē, nodrošinot, ka serveri atrodas reģionālajos punktos.

    Katram interneta serverim ir publiska IP adrese. Tas ir tieši piešķirts serverim vai piešķirts maršrutētājam, kas nosūta trafiku uz šo serveri. IP adreses dod mums priekšstatu par to, kur šis serveris atrodas pasaulē. Mēs varam iegūt šos ģeolokācijas datus caur divām atvērtām API, ko nodrošina ipinfo.co un IP Vigilante, un izmantot to, lai redzētu pilsētu, valsti un valsti, kas saistīta ar serveri vai citu attālo sistēmu. Tas nenodrošina precīzu GPS atrašanās vietu; tas tikai ļauj jums redzēt vispārējo IP adreses apgabalu.

    Savienojiet ar attālo sistēmu

    Linux serverī vai citās tālvadības sistēmās, kuras vēlaties ģeogrāfiski izvietot, jūs darbosies šādas komandas, tāpēc jums vispirms ir jāizveido savienojums ar serveri un jāievada apvalks. Piemēram, jūs varat izveidot savienojumu, izmantojot SSH. Jūs varat palaist vietējās sistēmas komandas, lai atrastu tās atrašanās vietu, bet jūs, iespējams, jau zināt, kur atrodaties!

    Instalējiet čokurošanās un jq

    Lai piekļūtu ģeogrāfiskās atrašanās vietas API, ir nepieciešami divi rīki: čokurošanās veikt HTTP pieprasījumus un  jq apstrādāt JSON datus, kurus mēs atgriežam. Atveriet termināli un izmantojiet  apt-get instalēt šos rīkus uz Ubuntu vai Debian sistēmām. Citos Linux izplatījumos izmantojiet savu Linux izplatīšanas pakotnes instalācijas rīku.

    sudo apt-get install curl jq

    Atrodiet servera publisko IP adresi

    Mums ir nepieciešama arī servera publiskā IP adrese, pirms varam iegūt ģeogrāfiskās atrašanās vietas datus. Izmantot čokurošanās veikt API zvanu uz ipinfo.io jūsu termināla logā.

    čokurošanās https://ipinfo.io/ip

    Iegūstiet atrašanās vietas datus no API

    Tagad, kad mums ir publiskais IP serveris, mēs varam zvanīt uz ipvigilante.com API, lai iegūtu ģeogrāfiskās atrašanās vietas datus. Aizvietot ar adresi, kas atgriezās iepriekšējā komandā.

    čokurošanās https://ipvigilante.com/

    Apskatīsim tuvāk, kādus datus mēs saņemam no šī zvana:

    API atgriež pilsētu, valsti un kontinentu, kurā atrodas mūsu serveris. Tā arī atgriež aptuvenās platuma un garuma koordinātas, ja mēs vēlamies izdarīt šo serveri interaktīvā kartē. Mūsu scenārijā izmantosim “platumu”, “garumu”, “pilsētas_nosaukumu” un “valsts_nosaukumu”. The  jq komanda saprot, kā apstrādāt API datus un izvilkt šos četrus laukus.

    Skripta izveide, lai automatizētu API zvanu

    Mēs varam izveidot skriptu, kas piesaista ģeogrāfiskās atrašanās vietas datus un ieraksta to failā CSV formātā. Dati tiks ierakstīti failā, ko sauc server_location.txt iekš / tmp / direktoriju. Atveriet savu iecienītāko redaktoru un izveidojiet nosaukumu geolocate.sh . Ievietojiet zemāk redzamo skripta saturu un noteikti aizvietojiet IP adresi ar savu:

    #! / bin / sh OUTPUT_FILE = / tmp / server_location.txt # Grab šī servera publiskā IP adrese PUBLIC_IP = "curl -s https://ipinfo.io/ip" # Zvaniet ģeogrāfiskās atrašanās vietas API un uztveriet izejas līkumu -s https : //ipvigilante.com/$ PUBLIC_IP | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name' | lasiet -r LATITUDE; lasīt -r LONGITUDE lasīt -r CITY lasīt -r COUNTRY atbalss "$ LATITUDE, $ LONGITUDE, $ CITY, $ COUNTRY" | r - atcelt "> OUTPUT_FILE veikts 

    Saglabājiet skriptu un atgriezieties terminālī. Padariet skriptu izpildāmu no termināla, piešķirot izpildīšanas atļauju šai failam.

    chmod u + x geolocate.sh

    Tagad jūs esat gatavs to pārbaudīt. Palaidiet geolocate.sh skriptu un pārbaudiet izejas faila saturu:

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

    Geolokācijas datu atjaunināšana vienreiz dienā ar Cron darbu

    Izveidosim cron darbu, lai mūsu serveris atjauninātu savu atrašanās vietu un saglabātu to failā vienu reizi dienā. Ikdienas cronu darba atjauninājumi atjaunina failu, ko sauc server_location.txt iekš / tmp / servera mapi. 24 stundu crona darba izveide ir tikpat vienkārša kā mūsu skripta ievietošana /etc/cron.daily direktoriju. Lai izvairītos no atļaujām, mums ir jāizmanto sudo komanda, lai failu kopētu kā root lietotāju. Lai kopētu, izpildiet šādu komandu geolocate.sh uz /etc/cron.daily direktoriju.

    sudo cp geolocate.sh /etc/cron.daily

    Šīs izmaiņas ir tūlītējas, un mūsu skripts darbosies ik pēc 24 stundām, lai atjauninātu programmas saturu /tmp/server_location.txt failu. Mēs varam izmantot šos datus, lai veiktu interesantas lietas, piemēram, uzzīmējot mūsu serverus kartē, kā arī apvienojot ģeogrāfisko atrašanās vietu ar satiksmes žurnāliem, lai redzētu, kur pasaulē ir mūsu serveru karstākie punkti..