Kaip gauti sistemos geografinę vietą iš „Bash Script“
Geografinę nuotolinės Linux sistemos vietą galite rasti naudojant atviras API ir paprastą „bash“ scenarijų. Serverio geolocavimas gali padėti jums jį stebėti fiziniame pasaulyje, užtikrinant, kad serveriai būtų regionuose.
Kiekvienas interneto serveris turi viešą IP adresą. Tai tiesiogiai priskiriamas serveriui arba priskiriamas maršrutizatoriui, kuris siunčia srautą į tą serverį. IP adresai suteikia mums informacijos apie tai, kur tas serveris yra pasaulyje. Mes galime gauti šiuos geolokacijos duomenis per dvi atviras API, kurias teikia „ipinfo.co“ ir „IP Vigilante“, ir jį naudoti norėdami pamatyti miestą, valstybę ir šalį, susijusią su serveriu ar kita nuotoline sistema. Tai nesuteikia jums tikslios GPS vietos; jis tiesiog leidžia matyti bendrą IP adreso sritį.
Prisijunkite prie nuotolinės sistemos
„Linux“ serveryje ar kitose nuotolinėse sistemose, kurias norite geografuoti, bus rodomos šios komandos, todėl pirmiausia turite prisijungti prie serverio ir prie jo patekti. Pavyzdžiui, galite prisijungti per SSH. Jūs galite paleisti vietinės sistemos komandas, kad surastumėte savo vietą, bet tikriausiai jau žinote, kur esate!
Įdiekite garbaną ir jq
Norint pasiekti geolokacijos API, reikia dviejų priemonių: garbanojimas
atlikti HTTP užklausas ir jq
apdoroti JSON duomenis, kuriuos grįžtame. Atidarykite terminalą ir naudokite apt-get
įdiegti šiuos įrankius Ubuntu arba Debian sistemose. Kitose „Linux“ platinimo vietose naudokite „Linux“ platinimo paketo diegimo įrankį.
sudo apt-get install curl jq
Rasti serverio viešąjį IP adresą
Mums taip pat reikia serverio viešojo IP adreso, kad galėtume gauti geolokacijos duomenis. Naudokite garbanojimas
padaryti terminalo lange API skambutį į „ipinfo.io“.
curl https://ipinfo.io/ip
Gaukite vietos duomenis iš API
Dabar, kai mes turime viešąjį IP serverį, mes galime skambinti į „ipvigilante.com“ API, kad gautume geolokacijos duomenis. Pakeisti su adresu, kuris grįžo į ankstesnę komandą.
curl https://ipvigilante.com/
Pažvelkime į tai, kokie duomenys grįšime iš šio skambučio:
API grąžina miestą, šalį ir žemyną, kuriame yra mūsų serveris. Ji taip pat grąžina apytikslias platumos ir ilgumos koordinates, jei norime šį serverį atkreipti į interaktyvų žemėlapį. Mūsų scenarijuje naudosime „platumą“, „ilgumą“, „miesto pavadinimą“ ir „country_name“. The jq
komanda supranta, kaip apdoroti API duomenis ir išskirti šiuos keturis laukus.
Skripto kūrimas API skambučiams automatizuoti
Galime sukurti scenarijų, kuris užfiksuoja geolokacijos duomenis ir įrašo jį į CSV formato failą. Duomenys bus įrašyti į failą, vadinamą server_location.txt
viduje konors / tmp /
katalogą. Atidarykite mėgstamą redaktorių ir sukurkite pavadinimą geolocate.sh
. Įterpkite žemiau pateiktą scenarijaus turinį ir įsitikinkite, kad pakeisite IP adresą savo:
# !!! : //ipvigilante.com/$ PUBLIC_IP | q '.data.latitude, .data.longitude, .data.city_name, .data.country_name' | skaitykite -r LATITUDE; skaityti -r LONGITUDE skaityti -r CITY skaityti -r COUNTRY aido „$ LATITUDE, $ LONGITUDE, $ CITY, $ COUNTRY“ | r - panaikinti „> OUTPUT_FILE
Išsaugokite scenarijų ir grįžkite į terminalą. Padarykite scenarijų vykdomąjį iš terminalo, suteikdami vykdymo leidimą šiam failui.
chmod u + x geolocate.sh
Dabar esate pasiruošę išbandyti. Paleiskite geolocate.sh
scenarijų ir patikrinkite išvesties failo turinį:
./geolocate.sh cat /tmp/server_location.txt
Geolokacijos duomenų atnaujinimas vieną kartą per dieną, naudojant „Cron Job“
Kurkime „cron“ darbą, kad mūsų serveris atnaujintų savo geografinę vietą ir išsaugotų ją į failą kartą per dieną. Kasdien atnaujinamas Cron užduoties failas server_location.txt
viduje konors / tmp /
serverio aplanką. 24 valandų trukmės crono darbo kūrimas yra toks pat lengvas, kaip mūsų scenarijų įdėjimas į /etc/cron.daily
katalogą. Kad išvengtume leidimo problemų, privalome naudoti „sudo“ komandą, kad nukopijuotumėte failą kaip root naudotoją. Norėdami kopijuoti, vykdykite šią komandą geolocate.sh
į /etc/cron.daily
katalogą.
sudo cp geolocate.sh /etc/cron.daily
Šie pakeitimai yra neatidėliotini, o mūsų scenarijus bus rodomas kas 24 valandas, kad atnaujintumėte /tmp/server_location.txt
failą. Šiuos duomenis galime naudoti, kad galėtume atlikti įdomių dalykų, pvz., Braižyti mūsų serverius žemėlapyje, taip pat derinti geolokaciją su srauto žurnalais, kad pamatytume, kur pasaulyje yra mūsų serverio karštųjų taškų..