Difference between revisions of "IT2DT2 Linux"

From Teknologisk videncenter
Jump to: navigation, search
m (Created page with "=Logfil opgave= Kopier apache [http://mars.tekkom.dk/data/httpd-access.log httpd-access.log] til et arbejdesbibliotek på din Linuxserver. Filen fylder ca 470 MB og er opsamlet i...")
 
m (1337 Team)
 
(12 intermediate revisions by 3 users not shown)
Line 6: Line 6:
 
#Find hvor mange interne sider der hentes (RFC1918 adresser)
 
#Find hvor mange interne sider der hentes (RFC1918 adresser)
 
##Hvilke 10 sider er de mest populære internt
 
##Hvilke 10 sider er de mest populære internt
 +
 +
=Konkurence=
 +
Der konkurerres om
 +
#Det hold der først finder oplysningerne
 +
#Det hold hvis script hurtigst finder informationerne
 +
 +
=Hints=
 +
==At komme igang==
 +
#Opret et arbejdsbibliotek
 +
#Gå ind i det
 +
#Hent den store logfil
 +
#Lav en lille logfil med de øverste 10000 linier
 +
<source lang=cli>
 +
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>
 +
</source>
 +
{{Source cli}}
 +
 +
=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=
 +
 +
=BOGO=
 +
 +
=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=
 +
 +
=Fiskergruppen=
 
[[Category:Linux]]
 
[[Category:Linux]]

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