Difference between revisions of "IT2DT2 Linux"

From Teknologisk videncenter
Jump to: navigation, search
m (Batman)
m (1337 Team)
 
(7 intermediate revisions by 3 users not shown)
Line 24: Line 24:
 
heth@mars2:logfil$ <input>wget http://mars.tekkom.dk/data/httpd-access.log</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
 
--2011-09-01 09:38:20--  http://mars.tekkom.dk/data/httpd-access.log
Løser mars.tekkom.dk... 127.0.1.1
+
Læser mars.tekkom.dk... 127.0.1.1
 
Connecting to mars.tekkom.dk|127.0.1.1|:80... forbundet.
 
Connecting to mars.tekkom.dk|127.0.1.1|:80... forbundet.
 
HTTP forespørgsel sendt, afventer svar... 200 OK
 
HTTP forespørgsel sendt, afventer svar... 200 OK
Line 39: Line 39:
  
 
=1337 Team=
 
=1337 Team=
 +
*Kenneth H. Mørch.
 +
*Kasper Ovesen.
 +
*Henrik Pedersen
 +
*Danny Christensen
 +
<source lang=cli>
 +
#!/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
 +
</source>
  
 
=BRMS=
 
=BRMS=
Line 45: Line 81:
  
 
=Winning=
 
=Winning=
 +
<source lang=cli>
 +
#!/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
 +
</source>
  
 
=Batman=
 
=Batman=

Latest revision as of 10:48, 18 September 2011

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

#!/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