Bash'in Komut Dosyasından Sisteminizin Coğrafi Konumunu Nasıl Gidilir?
Açık API'ler ve basit bir bash betiği kullanarak uzak bir Linux sisteminin coğrafi konumunu bulabilirsiniz. Bir sunucunun coğrafi konumu, dünyanın bölgesel noktalarında konumlandırıldığından emin olarak fiziksel dünyada izlemenize yardımcı olabilir.
İnternetteki her sunucunun halka açık bir IP adresi vardır. Bu, doğrudan sunucuya atanır veya bu sunucuya trafik gönderen bir yönlendiriciye atanır. IP adresleri bize o sunucunun dünyanın neresinde bulunduğuna dair bir ipucu veriyor. Bu konum belirleme verilerini ipinfo.co ve IP Vigilante tarafından sağlanan iki açık API üzerinden alabilir ve bir sunucu veya başka bir uzak sistemle ilişkili şehri, eyaleti ve ülkeyi görmek için kullanabiliriz. Bu size kesin bir GPS konumu sağlamaz; IP adresinin genel alanını görmenizi sağlar.
Uzak bir sisteme bağlanın
Aşağıdaki komutları Linux sunucusunda veya coğrafi konumlandırmak istediğiniz diğer uzak sistemlerde çalıştırıyor olacaksınız, bu nedenle önce sunucuya bağlanmalı ve bir kabuğa erişmelisiniz. Örneğin, SSH ile bağlanabilirsiniz. Konumunu bulmak için yerel sisteminizde komutları çalıştırabilirsiniz, ancak muhtemelen nerede olduğunuzu zaten biliyorsunuzdur.!
Kıvrılma ve jq yükleyin
Coğrafi konum API'sine erişmek için iki araca ihtiyacımız var: bukle
HTTP istekleri yapmak ve jq
geri aldığımız JSON verilerini işlemek için. Bir terminal aç ve kullan apt-get
bu araçları Ubuntu veya Debian tabanlı sistemlere kurmak için. Diğer Linux dağıtımlarında, Linux dağıtımınızın paket yükleme aracını kullanın..
sudo apt-get yükleme curl jq
Sunucunun Genel IP Adresini Bulun
Coğrafi konum verilerini almadan önce sunucunun genel IP adresine de ihtiyacımız var. kullanım bukle
terminal pencerenizde ipinfo.io'ya API çağrısı yapmak için.
kıvırmak https://ipinfo.io/ip
API’dan Konum Verileri Alın
Artık sunucunun genel IP'sine sahip olduğumuzdan, coğrafi konum verilerini almak için ipvigilante.com'un API'sini arayabiliriz. değiştirmek önceki komutta geri gelen adresi ile.
kıvırmak https://ipvigilante.com/
Bu çağrıdan hangi verilere geri döndüğümüzü daha yakından inceleyelim:
API, sunucumuzun bulunduğu şehri, ülkeyi ve kıtayı döndürür. Bu sunucuyu etkileşimli bir harita üzerinde çizmek istemeniz durumunda, yaklaşık enlem ve boylam koordinatlarını da döndürür. Senaryomuzda “enlem”, “boylam”, “şehir_adı” ve “ülke_adı” nı kullanacağız. jq
komut, API verilerinin nasıl işlendiğini ve bu dört alanın nasıl çıkarılacağını anlar..
API Çağrısını Otomatikleştirmek için Bir Komut Dosyası Oluşturma
Coğrafi konum verilerini alan ve CSV biçiminde bir dosyaya yazan bir komut dosyası oluşturabiliriz. Veri adı verilen bir dosyaya yazılacaktır. server_location.txt
içinde / Tmp /
dizin. Favori düzenleyicinizi açın ve adlı bir komut dosyası oluşturun. geolocate.sh
. Aşağıda gösterilen komut dosyası içeriğini ekleyin ve IP adresini kendinizinkiyle değiştirdiğinizden emin olun:
#! / bin / sh OUTPUT_FILE = / tmp / server_location.txt # Bu sunucunun genel IP adresini al PUBLIC_IP = "curl -s https://ipinfo.io/ip" # Coğrafi konum API'sini çağırın ve çıktı curl -s https'yi yakalayın : //ipvigilante.com/$ PUBLIC_IP | \ jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name' | \ -r LATITUDE okunurken; okuma -r LONGITUDE okuma -r ŞEHİR okuma -r ÜLKE echo "$ LATITUDE, $ LONGITUDE, $ CITY, $ COUNTRY" | \ tr --delete \ "> \ $ OUTPUT_FILE bitti
Komut dosyasını kaydedin ve terminale geri dönün. Komut dosyasını bu dosya üzerinde çalıştırma izni vererek terminalden yürütülebilir duruma getirin.
chmod u + x Instagram Hesabındaki Resim ve Videoları geolocate.sh
Şimdi test etmeye hazırsın. Koş geolocate.sh
komut dosyası ve çıktı dosyasının içeriğini kontrol edin:
./geolocate.sh cat /tmp/server_location.txt
Coğrafi Konum Verilerini Günde Bir Cron İşiyle Güncelleme
Sunucumuzun coğrafi konumunu güncellemesi ve günde bir kez kaydetmesi için bir cron işi yaratalım. Günlük cron işi adı verilen bir dosyayı günceller. server_location.txt
içinde / Tmp /
Sunucunun klasörü. 24 saatlik bir cron işi oluşturmak, senaryomuzu koymak kadar kolay /etc/cron.daily
dizin. İzin sorunlarını önlemek için dosyayı kök kullanıcı olarak kopyalamak için sudo komutunu kullanmalıyız. Kopyalamak için aşağıdaki komutu çalıştırın geolocate.sh
-e /etc/cron.daily
rehber.
sudo cp geolocate.sh /etc/cron.daily
Bu değişiklikler hemen gerçekleşir ve komut dosyanızın içeriğini güncellemek için her 24 saatte bir komut dosyası çalışır. /tmp/server_location.txt
dosya. Bu verileri, sunucularımızı bir harita üzerine yerleştirmek ve coğrafi konumumuzu trafik günlükleriyle birleştirmek, dünyadaki sunucu sıcak noktalarının nerede olduğunu görmek için ilginç şeyler yapmak için kullanabiliriz..