Kotisivu » miten » Kuinka saada järjestelmän maantieteellinen sijainti Bash-skriptistä

    Kuinka saada järjestelmän maantieteellinen sijainti Bash-skriptistä

    Toria / Shutterstock.com

    Etäisen Linux-järjestelmän maantieteellinen sijainti löytyy avoimista sovellusliittymistä ja yksinkertainen bash-skripti. Palvelimen geolokointi voisi auttaa sinua seuraamaan sitä fyysisessä maailmassa, mikä varmistaa, että palvelimet sijaitsevat alueellisissa hotspotissa.

    Jokaisella Internet-palvelimella on julkinen IP-osoite. Tämä on joko suoraan palvelimelle tai osoitettu reitittimelle, joka lähettää liikennettä kyseiselle palvelimelle. IP-osoitteet antavat meille käsityksen siitä, missä palvelin sijaitsee maailmassa. Voimme saada nämä geolokointitiedot kahdella avoimella API: lla, jotka tarjoavat ipinfo.co ja IP Vigilante, ja käyttää sitä nähdäksesi kaupungin, valtion ja maan, joka liittyy palvelimeen tai muuhun etäjärjestelmään. Tämä ei anna sinulle tarkkaa GPS-sijaintia. se vain näyttää IP-osoitteen yleisen alueen.

    Yhdistä etäjärjestelmään

    Linux-palvelimella tai muilla etäyhteensopivilla järjestelmillä, joita haluat yhdistää, suoritetaan seuraavat komennot, joten sinun on muodostettava yhteys palvelimeen ja pääset ensin kuoreen päälle. Voit esimerkiksi muodostaa yhteyden SSH: n kautta. Voit käyttää paikallisen järjestelmän komentoja löytääksesi sen sijainnin, mutta luultavasti tiedät jo, missä olet!

    Asenna curl ja jq

    Tarvitsemme kaksi työkalua päästäksesi paikannusliittymän sovellusliittymään: kiemura tehdä HTTP-pyyntöjä ja  JQ käsittelemään JSON-tietoja, joita saamme takaisin. Avaa pääte ja käytä  apt-get asentaa nämä työkalut Ubuntu- tai Debian-pohjaisiin järjestelmiin. Muissa Linux-jakeluissa käytä Linux-jakelun paketin asennustyökalua sen sijaan.

    sudo apt-get install curl jq

    Etsi palvelimen julkinen IP-osoite

    Tarvitsemme myös palvelimen julkisen IP-osoitteen ennen kuin voimme saada paikannustiedot. Käyttää kiemura tehdä API-puhelu ipinfo.io: lle pääteikkunassa.

    curl https://ipinfo.io/ip

    Hanki sijaintitiedot sovellusliittymästä

    Nyt kun meillä on palvelimen julkinen IP, voimme soittaa ipvigilante.com: n API: han saadaksesi paikannustiedot. Korvata jossa on osoite, joka tuli takaisin edelliseen komentoon.

    curl https://ipvigilante.com/

    Tarkastellaan lähemmin sitä, mitä tietoja me palaamme tästä puhelusta:

    API palauttaa kaupungin, maan ja mantereen, jossa palvelimemme sijaitsee. Se palauttaa myös likimääräiset leveys- ja pituuskoordinaatit, jos haluamme piirtää tämän palvelimen interaktiivisella kartalla. Käytämme "latitude", "longitude", "city_name" ja "country_name" käsikirjoituksissamme.  JQ komento ymmärtää API-tietojen käsittelyn ja poimii nämä neljä kenttää.

    Komentosarjan luominen API-puhelun automatisoimiseksi

    Voimme luoda komentosarjan, joka tarttuu paikannustietoihin ja kirjoittaa sen CSV-muodossa olevaan tiedostoon. Tiedot kirjoitetaan nimettyyn tiedostoon server_location.txt vuonna / Tmp / hakemistoon. Avaa suosikkieditori ja luo nimetty komentosarja geolocate.sh . Aseta alla oleva skriptin sisältö ja vaihda IP-osoite omaan osoitteeseen:

    #! / bin / sh OUTPUT_FILE = / tmp / server_location.txt # Tartu tämän palvelimen julkiseen IP-osoitteeseen PUBLIC_IP = "curl -s https://ipinfo.io/ip" # Soita maantieteellisen paikannusliittymän sovellusliittymään ja tallenna tulosteen curl -s https : //ipvigilante.com/$ PUBLIC_IP | q '.data.latitude, .data.longitude, .data.city_name, .data.country_name' | luki -r LATITUDE; lue -r LONGITUDE lukea -r CITY lukea -r COUNTRY echo "$ LATITUDE, $ LONGITUDE, $ CITY, $ COUNTRY" | r - poista "> $ OUTPUT_FILE tehty 

    Tallenna skripti ja palaa päätteeseen. Tee komentosarja suoritettavaksi päätelaitteesta myöntämällä suorituksen lupa tähän tiedostoon.

    chmod u + x geolocate.sh

    Nyt olet valmis kokeilemaan sitä. Suorita geolocate.sh skripti ja tarkista tulostustiedoston sisältö:

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

    Geolokointitietojen päivittäminen kerran päivässä Cron Jobin avulla

    Luodaan cron-työ, jotta palvelimemme voi päivittää sijaintinsa ja tallentaa sen tiedostoon kerran päivässä. Päivittäinen cron-työ päivittää tiedoston, jonka nimi on server_location.txt vuonna / Tmp / palvelimen kansion. 24 tunnin cron-työn luominen on yhtä helppoa kuin skriptiämme /etc/cron.daily hakemistoon. Meidän on käytettävä sudo-komentoa kopioimaan tiedosto root-käyttäjänä, jotta vältetään lupakysymykset. Kopioi seuraava komento geolocate.sh että /etc/cron.daily hakemisto.

    sudo cp geolocate.sh /etc/cron.daily

    Nämä muutokset ovat välittömiä, ja käsikirjamme ajetaan 24 tunnin välein päivittämään /tmp/server_location.txt tiedosto. Voimme käyttää näitä tietoja mielenkiintoisten asioiden tekemiseen, kuten esimerkiksi palvelimien kartoittamiseen karttaan ja geolokointia yhdistämällä liikennelokit, jotta voimme nähdä, missä maailmassa palvelimemme hotspotit ovat.