IT2DT2 Linux

From Teknologisk videncenter
Revision as of 10:36, 16 September 2011 by Computerkim (talk | contribs) (Winning)
Jump to: navigation, search

Logfil opgave

Kopier apache httpd-access.log til et arbejdesbibliotek på din Linuxserver. Filen fylder ca 470 MB og er opsamlet i perioden 27 februar 2011 til 8. august 2011 fra mars.tekkom.dk.

  1. Find de 10 mest anvendte sider fra logfilen
  2. Find hvor mange eksterne sider der hentes
    1. Hvilke 10 sider er de mest populære eksternt
  3. Find hvor mange interne sider der hentes (RFC1918 adresser)
    1. Hvilke 10 sider er de mest populære internt

Konkurence

Der konkurerres om

  1. Det hold der først finder oplysningerne
  2. Det hold hvis script hurtigst finder informationerne

Hints

At komme igang

  1. Opret et arbejdsbibliotek
  2. Gå ind i det
  3. Hent den store logfil
  4. Lav en lille logfil med de øverste 10000 linier
heth@mars2:~$ <input>mkdir logfil</input>
heth@mars2:~$ <input>cd logfil</input>

heth@mars2:logfil$ <input>wget http://mars.tekkom.dk/data/httpd-access.log</input>
--2011-09-01 09:38:20--  http://mars.tekkom.dk/data/httpd-access.log
Læser mars.tekkom.dk... 127.0.1.1
Connecting to mars.tekkom.dk|127.0.1.1|:80... forbundet.
HTTP forespørgsel sendt, afventer svar... 200 OK
Længde: 468007853 (446M) [text/plain]
Saving to: `httpd-access.log'

100%[======================================>] 468.007.853  254M/s   in 1,8s

2011-09-01 09:38:22 (254 MB/s) - `httpd-access.log' saved [468007853/468007853]

heth@mars2:logfil$ <input>head -n 10000 httpd-access.log > small.log</input>


1337 Team

  • Kenneth H. Mørch.
  • Kasper Ovesen.
  • Henrik Pedersen
  • Danny Christensen
#!/bin/sh
input=$1
output=$2
clear
echo "Sorting Logfile"
clear
echo "Sorting Logfile."
cat ${input} | awk '{ print $7}'|sort > ./apax.tmp &
cat ${input} | awk '{ print $1}'|sort > ./apax2.tmp &
echo "pre"
wait %1 %2
echo "post"
cat ./apax.tmp ./apax2.tmp > ./apa.tmp
clear
echo "Sorting Logfile.."
awk '{ print $1, $2}' ./apa.tmp | grep -E "index.php/|index.htm" | uniq -c | sort -nr > ./apache1337.tmp
clear
echo "Sorting Logfile..."
awk '{ print $1}' ./apa.tmp | grep -E "192.168.|172.16.|10.10." > ./apa.uni
awk '{ print $1, $2}' ./apa.uni | uniq -c | sort -nr > ./apache1337.uni
clear
echo "Sorting Logfile......"
echo -e "\n Writing output to a file..\n"
cat ./apache1337.tmp | head -n 10 > "${output}visits.Total"
cat ./apache1337.uni | head -n 10 > "${output}Internal.Total"
rm -R ./apache1337.tmp  ./apache1337.uni
clear
echo "Done"
clear
exit 0

BRMS

BOGO

Winning

  1. !/bin/bash

read -p "Path to log file: " file while true; do clear echo echo 1 - Top iper echo 2 - Top lokale iper echo 3 - Top externe iper echo 4 - Top sider echo 5 - Top lokale sider echo 6 - Top eksterne sider echo 7 - Antal sider hentet echo 8 - Antal sider hentet lokalt echo 9 - Antal sider hentet eksternt echo q/e - Exit echo echo Note: Use Q to exit the menues. echo read -p "Option: " key

 case $key in
   [1] ) clear; cat $file|cut -d ' ' -f 1|sort|uniq -c|sort -n -r|less;;
   [2] ) clear; cat $file|cut -d ' ' -f 1|sort|grep -e '^10.\|^192.168.\|^172.16.\|^172.17.\|^172.18.\|^172.19.\|^172.20.\|^172.21.\|^172.22.\|^172.23.\|^172.24.\|^172.25.\|^172.26.\|^172.27.\|^172.28.\|^172.29.\|^172.30.\|^172.31.'|sort|uniq -c|sort -n -r|less;;
   [3] ) clear; cat $file|cut -d ' ' -f 1|sort|grep -v -e '^10.\|^192.168.\|^172.16.\|^172.17.\|^172.18.\|^172.19.\|^172.20.\|^172.21.\|^172.22.\|^172.23.\|^172.24.\|^172.25.\|^172.26.\|^172.27.\|^172.28.\|^172.29.\|^172.30.\|^172.31.'|sort|uniq -c|sort -n -r|less;;
   [4] ) clear; cat $file|cut -d ' ' -f 7|sort|grep 'index.php'|sort|uniq -c|sort -n -r|less;;

[5] ) clear; cat $file|grep -e '^10.\|^192.168.\|^172.16.\|^172.17.\|^172.18.\|^172.19.\|^172.20.\|^172.21.\|^172.22.\|^172.23.\|^172.24.\|^172.25.\|^172.26.\|^172.27.\|^172.28.\|^172.29.\|^172.30.\|^172.31.'|sort|grep 'index.php'|sort|cut -d ' ' -f 7|sort|grep 'index.php'|sort|uniq -c|sort -n -r|less;; [6] ) clear; cat $file|grep -v -e '^10.\|^192.168.\|^172.16.\|^172.17.\|^172.18.\|^172.19.\|^172.20.\|^172.21.\|^172.22.\|^172.23.\|^172.24.\|^172.25.\|^172.26.\|^172.27.\|^172.28.\|^172.29.\|^172.30.\|^172.31.'|sort|grep 'index.php'|sort|cut -d ' ' -f 7|sort|grep 'index.php'|sort|uniq -c|sort -n -r|less;;

   [7] ) clear; echo Antal sider hentet: $(cat $file|wc -l);read;; 

[8] ) clear; echo Antal sider hentet lokalt: $(cat $file|grep -e '^10.\|^192.168.\|^172.16.\|^172.17.\|^172.18.\|^172.19.\|^172.20.\|^172.21.\|^172.22.\|^172.23.\|^172.24.\|^172.25.\|^172.26.\|^172.27.\|^172.28.\|^172.29.\|^172.30.\|^172.31.'|sort|grep 'index.php'|sort|wc -l);read;; [9] ) clear; echo Antal sider hentet eksternt: $(cat $file|grep -v -e '^10.\|^192.168.\|^172.16.\|^172.17.\|^172.18.\|^172.19.\|^172.20.\|^172.21.\|^172.22.\|^172.23.\|^172.24.\|^172.25.\|^172.26.\|^172.27.\|^172.28.\|^172.29.\|^172.30.\|^172.31.'|sort|grep 'index.php'|sort|wc -l);read;; [EeQq]* ) clear; break;;

   * ) clear; echo Error: Invalid option!;;
 esac

done

Batman

Fiskergruppen