Toon alle websites die vandaag bezocht zijn

Onderstaand commando laat alle websites zien die vandaag bezocht zijn op je apache webserver.

cat /var/log/apache2/other_vhosts_access.log | grep -i $(date "+%d/%b/%Y") | awk {'print $1'} | sort | uniq

Hieronder uitgelegd wat er nu precies gebeurt met dit commando.

cat

cat /var/log/apache2/other_vhosts_access.log | grep -i $(date "+%d/%b/%Y") | awk {'print $1'} | sort | uniq

cat laat simpel de apache other_vhosts_access.log logfile zien. In de logfile staat bijvoorbeeld:

linux.dennisclarisse.nl:443 62.42.37.23 - - [04/Feb/2019:18:23:52 +0100] "GET /index.. etc. etc.

grep

cat /var/log/apache2/other_vhosts_access.log | grep -i $(date "+%d/%b/%Y") | awk {'print $1'} | sort | uniq

Met grep filter je de regels eruit met de datum van vandaag. Het formaat van de datum is d-b-Y 04/Feb/2019. Zie hieronder vetgedrukt:

linux.dennisclarisse.nl:443 62.42.37.23 - - [04/Feb/2019:18:23:52 +0100] "GET /index.. etc. etc.

Met -i (niet hoofdlettergevoelig) pakt hij ook 04/feb/2019.

Het kan natuurlijk zo zijn dat je logfile een ander datumformaat heeft. Je kunt hier de verschillende mogelijkheden zien om het formaat aan te passen.

awk

cat /var/log/apache2/other_vhosts_access.log | grep -i $(date "+%d/%b/%Y") | awk {'print $1'} | sort | uniq

Vervolgens kun je met awk alleen het eerste veld $1 laten zien. En dat is de domeinnaam in dit geval.

linux.dennisclarisse.nl:443 62.42.37.23 - - [04/Feb/2019:18:23:52 +0100] "GET /index.. etc. etc.

sort en uniq

cat /var/log/apache2/other_vhosts_access.log | grep -i $(date "+%d/%b/%Y") | awk {'print $1'} | sort | uniq

Vervolgens sorteer je de enorme lijst met sort, zodat je daarna de lijst uniek kan maken met uniq. Zo heb je elke domeinnaam maar 1 keer in je lijst.

Taalbarrière?

Indien je andere taal of landinstelling ingesteld hebt staat kan het zijn dat de date functie een andere maand terug geeft. Bijvoorbeeld mrt in plaats van Mar in deze maand…

Dat is op te lossen om de volgende regel aan het begin in het script toe te voegen.

LANG=en_us_8859_1

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie gegevens worden verwerkt.