Како да добијете географску локацију вашег система из Басх скрипте

Можете пронаћи географску локацију удаљеног Линук система користећи отворене АПИ-је и једноставну басх скрипту. Геолоцирање сервера може вам помоћи да га пратите у физичком свету, осигуравајући да се сервери налазе у регионалним жаришним тачкама.

Сваки сервер на интернету има јавну ИП адресу. Ово се или директно додељује серверу, или се додељује рутеру који шаље саобраћај том серверу. ИП адресе нам дају траг о томе где се тај сервер налази у свету. Ове геолокацијске податке можемо добити преко два отворена АПИ-ја, које обезбеђују ипинфо.цо и ИП Вигиланте и користити их да видимо град, државу и државу повезане са сервером или другим удаљеним системом. Ово вам не даје прецизну ГПС локацију; само вам омогућава да видите општу област ИП адресе.

Повежите се на удаљени систем

Покренућете следеће команде на Линук серверу или другим удаљеним системима које желите да геолоцирате, тако да се морате прво повезати са сервером и приступити љусци на њему. На пример, можете се повезати преко ССХ-а. Можете покренути команде на свом локалном систему да пронађете његову локацију, али вероватно већ знате где се налазите!

Инсталирајте цурл и јк

Потребна су нам два алата за приступ АПИ-ју за геолокацију: цурл за прављење ХТТП захтева и јк за обраду ЈСОН података које добијамо. Отворите терминал и користите апт-гет да инсталирате ове алате на Убунту или Дебиан системе. У другим Линук дистрибуцијама, користите алатку за инсталацију пакета ваше дистрибуције Линука.

sudo apt-get install curl jq

Пронађите јавну ИП адресу сервера

Такође нам је потребна јавна ИП адреса сервера пре него што добијемо геолокацијске податке. Користите цурл да упутите АПИ позив ипинфо.ио у прозору вашег терминала.

curl https://ipinfo.io/ip

Добијте податке о локацији из АПИ-ја

Сада када имамо јавну ИП адресу сервера, можемо да упутимо позив АПИ-ју ипвигиланте.цом да бисмо добили податке о геолокацији. Заменити са адресом која се вратила у претходној команди.

curl https://ipvigilante.com/

Хајде да ближе погледамо које податке добијамо из овог позива:

  Како снимити екран на иПхоне-у?

АПИ враћа град, земљу и континент у којем се налази наш сервер. Такође враћа приближне координате географске ширине и дужине, у случају да желимо да овај сервер нацртамо на интерактивној мапи. Користићемо „латитуде“, „лонгитуде“, „цити_наме“ и „цоунтри_наме“ у нашој скрипти. Команда јк разуме како да обради АПИ податке и издвоји ова четири поља.

Креирање скрипте за аутоматизацију АПИ позива

Можемо да креирамо скрипту која хвата геолокацијске податке и уписује их у датотеку у ЦСВ формату. Подаци ће бити уписани у датотеку под називом сервер_лоцатион.ткт у /тмп/ директоријуму. Отворите свој омиљени уређивач и креирајте скрипту под називом геолоцате.сх. Уметните садржај скрипте приказан испод и обавезно замените ИП адресу својом:

#!/bin/sh

OUTPUT_FILE=/tmp/server_location.txt

# Grab this server's public IP address
PUBLIC_IP=`curl -s https://ipinfo.io/ip`

# Call the geolocation API and capture the output
curl -s https://ipvigilante.com/${PUBLIC_IP} | 
        jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name' | 
        while read -r LATITUDE; do
                read -r LONGITUDE
                read -r CITY
                read -r COUNTRY
                echo "${LATITUDE},${LONGITUDE},${CITY},${COUNTRY}" | 
                        tr --delete " > 
                        ${OUTPUT_FILE}
        done

Сачувајте скрипту и вратите се на терминал. Учините скрипту извршном са терминала, тако што ћете дати дозволу за извршавање ове датотеке.

chmod u+x geolocate.sh

Сада сте спремни да га тестирате. Покрените геолоцате.сх скрипту и проверите садржај излазне датотеке:

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

Ажурирање података о геолокацији једном дневно са Црон послом

Хајде да направимо црон посао да би наш сервер ажурирао своју геолокацију и сачувао га у датотеку једном дневно. Дневни црон посао ажурира датотеку под називом сервер_лоцатион.ткт у /тмп/ фасцикли сервера. Креирање 24-часовног црон посла је једноставно као и стављање наше скрипте у /етц/црон.даили директоријум. Морамо користити команду судо да копирамо датотеку као роот корисник, да бисмо избегли проблеме са дозволама. Покрените следећу команду да копирате геолоцате.сх у директоријум /етц/црон.даили.

sudo cp geolocate.sh /etc/cron.daily

Ове промене су тренутне и наша скрипта ће се покретати свака 24 сата да ажурира садржај датотеке /тмп/сервер_лоцатион.ткт. Можемо да користимо ове податке да радимо занимљиве ствари, као што је цртање наших сервера на мапи, као и комбиновање геолокације са евиденцијама саобраћаја да бисмо видели где се у свету налазе наше жаришне тачке сервера.

  Како да поправите Мицрософт Теамс заглављен при учитавању