最も要求の高い上位10個のIPとApacheログファイルで発生した要求の数があります。要求を処理するには、次のコマンドを使用します。
cat access_log|cut -d' ' -f1|uniq -c|sort -r|head -n 10
同じことを行う必要がありますが、このIPアドレスの所有者も見つける必要があります。
答え1
コマンドを拡張して、情報に基づいてwhois
IPアドレスを見つけることができます。
cat access_log|cut -d' ' -f1|uniq -c|sort -r|head -n 10|while read COUNT IP; do whois $IP; done;
答え2
IPアドレスの所有者を見つけるには、whoisコマンドとgeoiplookupコマンドを使用できます。 Whoisは組織情報を提供し、geoiplookupはすべてのIPアドレスを国とおおよその地理的位置に変換します。
これらのコマンドは次のように使用されます。
$geoiplookup 183.53.45.4
GeoIP Country Edition: CN, China
GeoIP City Edition, Rev 1: CN, N/A, N/A, N/A, N/A, 35.000000, 105.000000, 0, 0
$whois 183.53.45.4
% [whois.apnic.net]
% Whois data copyright terms
http://www.apnic.net/db/dbcopyright.html
% Information related to '183.0.0.0 - 183.63.255.255'
inetnum: 183.0.0.0 - 183.63.255.255
netname: CHINANET-GD
descr: CHINANET Guangdong province network
descr: Data Communication Division
descr: China Telecom
country: CN
一般に、特定の問題を調査するときに、要求が最も多い国と実際の組織だけを知ることがより役に立つと思います。
あなたのコマンドを次のように変更します。
for i in `cat access_log|cut -d' ' -f1|uniq -c|sort -r|head -n 10`
do
geoiplookup $i | head -1 | awk ' { print $4 } '
done
Debian に必要なコマンドをインストールするには:
sudo apt-get install geoip-bin whois