f79f791d838dc2f1678e2305dd6f8be20d369494
5 USAGE
="usage: ${0} [-dm] [-l #]"
8 printf "%s\n" "$USAGE" >&2; exit 2
12 printf "error: server not detected, needs to be set manually\n" >&2
13 printf "set \$SERVER or modify the script itself\n" >&2
20 while getopts "dl:m" flag
; do
22 d
) CUTCMD
="-d/ -f1,2" ;;
23 m
) CUTCMD
="-d: -f2,3" ;;
25 if [ "$OPTARG" -eq "$OPTARG" ]; then
34 # ... && ... || is not an if-then-else, but this works because
35 # there's no way for only one printf to fail
36 [ -z "$SERVER" ] && SERVER
=$(which > /dev/null 2>&1 apache2 && printf "apache2" || which > /dev/null 2>&1 nginx && printf "nginx" || err)
38 CURDAY
=$(tail -n1 /var/log/"$SERVER"/access.log | grep -oE "[0-9]{2}/.*/[0-9]{4}:")
40 { cat /var
/log
/"$SERVER"/access.log
/var
/log
/"$SERVER"/access.log
.1; gzip -cd /var
/log
/"$SERVER"/access.log.
*.gz
; } | awk -v curday
="$CURDAY" '$0 ~ curday { if (match($0, /[0-9]{2}\/.*\/[0-9]{4}:[0-9]{2}:[0-9]{2}:[0-9]{2}/)) { print substr($0, RSTART, RLENGTH) } next } { exit }' | cut
$CUTCMD | uniq -c | tail -n"$TAILN"