I dag ville jag räkna antal unika besökare till en ny site jag satt upp. Så här gjorde jag:
#!/bin/bash if [[ -z "$1" ]]; then date=$(date +%d/%b) else date=$(date -d "$1" +%d/%b) fi zcat /var/log/apache2/access.log*.gz | cat - /var/log/apache2/access.log{,.1} | grep -i $date | awk '{print $1}' | sort | uniq | wc -l exit 0
Skriptet tar en frivillig parameter som är ett datum som date-kommandot kan parsa och räknar antal unika ipadresser i logiflen för det datumet. Utan parameter får du dagens besökare.
Edit: Fixade så att gzipade loggar kom med också.