SHOW:
|
|
- or go back to the newest paste.
| 1 | #!/bin/bash | |
| 2 | ||
| 3 | PROM='[0-9]\{1,3\}';
| |
| 4 | IP=" $PROM\.$PROM\.$PROM\.$PROM "; | |
| 5 | ||
| 6 | - | cat apache.log | tr "]" " " | sed 's|\('"$IP"'\).*|\1|' | sed 's|.*\('"$IP"'\)$|\1|' | sort | uniq -c | sort -nr -k1,1 | awk '{if(NR==1 || OLD==$1){print $2 ; OLD=$1}}' | sort -n -t"." -k1 -k2 -k3 -k4 |
| 6 | + | cat apache.log | tr "]" " " | sed 's|\('"$IP"'\).*|\1|' | sed 's|.*\('"$IP"'\)$|\1|' | sort | uniq -c | sort -nr -k1,1 | awk '{if(NR==1 || OLD==$1){print $2 ; OLD=$1}}' | sort -n -t"." -k1 -k2 -k3 -k4
|
| 7 | ||
| 8 | echo' | |
| 9 | V aktuálním adresáři je soubor apache.log se záznamem přístupů k webovému serveru. | |
| 10 | Vypište nejčetnější IP adresu nebo adresy, pokud je jich více. Každou unikátní adresu vypište na samostatný řádek, seřazené vzestupně podle jednotlivých oktetů IP adresy zleva. | |
| 11 | V logu mohou být i chybové zprávy, také mají IP adresu původce, ale řádka je v jiném formátu. Tyto IP adresy je nutné zpracovat také. | |
| 12 | ||
| 13 | Příklady | |
| 14 | Log soubor obsahuje například těchto pět řádků: | |
| 15 | ||
| 16 | Oct 1 00:02:30 edux ap2[rpx]: 147.32.123.135 - - [10/1/2011:00:02:30 +0] "GET /BI-UOS/lec/03/3prednaska.pdf HTTP/1.1" 206 5830 | |
| 17 | Oct 1 00:02:31 edux ap2[rpx]: 147.32.123.135 - - [10/1/2011:00:02:31 +0] "GET /BI-UOS/lec/03/3prednaska.pdf HTTP/1.1" 206 5830 | |
| 18 | Oct 1 00:02:43 edux ap2[rpx]: 86.49.86.108 - - [10/1/2011:00:02:43 +0] "GET /BI-UOS/tutor/06/start HTTP/1.1" 200 23817 | |
| 19 | Oct 1 00:02:43 edux ap2[rpx]: 86.49.86.108 - - [10/1/2011:00:02:43 +0] "GET /BI-UOS/lib/exe/idx.php?id=p%3A%3A HTTP/1.1" 200 42 | |
| 20 | Oct 1 00:02:46 edux ap2[rpx]: 77.236.192.69 - - [10/1/2011:00:02:46 +0] "GET /BI-UOS/tutor/03/vi.png?id=%3A3 HTTP/1.1" 200 1122 | |
| 21 | ||
| 22 | Na standardní výstup vypisujeme: | |
| 23 | ||
| 24 | 86.49.86.108 | |
| 25 | 147.32.123.135 | |
| 26 | ||
| 27 | Log soubor obsahuje například těchto jiných osm řádků: | |
| 28 | ||
| 29 | Oct 12 00:02:30 edux ap2[rpx]: 147.32.123.135 - - [10/1/2011:00:02:30 +0] "GET /BI-UOS/lec/03/3prednaska.pdf HTTP/1.1" 206 5830 | |
| 30 | Oct 12 00:02:31 edux ap2[rpx]: 147.32.124.135 - - [10/1/2011:00:02:31 +0] "GET /BI-UOS/lec/03/3prednaska.pdf HTTP/1.1" 206 5830 | |
| 31 | Oct 12 00:02:59 edux ap2[rpx]: [Wed Oct 12 00:02:59 2011] [error] [client 147.32.123.136] File does not exist: /apache/data/muieblackcat | |
| 32 | Oct 12 00:08:05 edux ap2[rpx]: 147.31.9.135 - - [10/1/2011:00:08:05 +0] "GET /BI-UOS/lec/07/7prednaska.pdf HTTP/1.1" 200 9210 | |
| 33 | Oct 12 00:08:43 edux ap2[rpx]: 86.49.86.109 - - [10/1/2011:00:08:43 +0] "GET /BI-UOS/tutor/06/start HTTP/1.1" 200 23817 | |
| 34 | Oct 12 00:08:44 edux ap2[rpx]: 86.49.86.108 - - [10/1/2011:00:08:44 +0] "GET /BI-UOS/lib/exe/idx.php?id=p%3A%3A HTTP/1.1" 200 42 | |
| 35 | Oct 12 00:08:46 edux ap2[rpx]: 77.236.192.69 - - [10/1/2011:00:08:46 +0] "GET /BI-UOS/tutor/03/vi.png?id=%3A3 HTTP/1.1" 200 1122 | |
| 36 | Oct 12 00:09:51 edux ap2[rpx]: 147.31.124.135 - - [10/1/2011:00:09:51 +0] "GET /BI-UOS/lec/03/3prednaska.pdf HTTP/1.1" 206 5830 | |
| 37 | ||
| 38 | Na standardní výstup vypisujeme: | |
| 39 | ||
| 40 | 77.236.192.69 | |
| 41 | 86.49.86.108 | |
| 42 | 86.49.86.109 | |
| 43 | 147.31.9.135 | |
| 44 | 147.31.124.135 | |
| 45 | 147.32.123.135 | |
| 46 | 147.32.123.136 | |
| 47 | 147.32.124.135 | |
| 48 | ||
| 49 | Poznámky | |
| 50 | IP adresa je uspořádaná čtveřice čísel oddělených tečkami, v předchozích příkladech je to třeba: | |
| 51 | 147.32.123.135 | |
| 52 | ||
| 53 | Poznámky k příkladu | |
| 54 | Větší soubor pro experimentování je připraven na serverech fray: | |
| 55 | /home/courses/BIPS1/public/07/apache.log | |
| 56 | Druhý příklad na zkontrolování dodržení předepsaného seřazení výsledků by v ostré verzi zadání neobsahoval adresu 147.31.9.135. | |
| 57 | ' |