X-Git-Url: https://git.datadissipation.net/logtools/blobdiff_plain/a58ea8f04e9d780800df9f4c0a3454c1d717d046..HEAD:/countbytes diff --git a/countbytes b/countbytes index e2691af..0c39d0e 100755 --- a/countbytes +++ b/countbytes @@ -1,6 +1,6 @@ #!/bin/sh -trap "exit 2" USR1 +trap "exit 1" USR1 err() { printf "error: server not detected, needs to be set manually\n" >&2 @@ -12,4 +12,4 @@ err() { # there's no way for only one printf to fail [ -z "$SERVER" ] && SERVER=$(which > /dev/null 2>&1 apache2 && printf "apache2" || which > /dev/null 2>&1 nginx && printf "nginx" || err) -{ zcat /var/log/"$SERVER"/access.log.*.gz; cat /var/log/"$SERVER"/access.log /var/log/"$SERVER"/access.log.1; } | grep --color=auto -a "$@" | awk 'match($0, /\" [0-9]{3} [0-9]+ \"/) { matchp = substr($0, RSTART, RLENGTH); split(matchp, nums, " "); n+=nums[3] } END {print n}' +{ cat /var/log/"$SERVER"/access.log /var/log/"$SERVER"/access.log.1; gzip -cd $(ls /var/log/"$SERVER"/access.log.*.gz | sed 's/.*\.\([0-9]*\)\.gz/\1 &/' | sort -n | cut -d' ' -f2-); } | grep -a "$@" | awk 'match($0, /" [0-9]{3} [0-9]+ "/) { matchp = substr($0, RSTART, RLENGTH); split(matchp, nums, " "); n+=nums[3] } END { y=0; split("B K M G T", units); while (n >= 1024 && y < 4) { n /= 1024; y++; } if (y == 0) { print n } else if (n < 10) {printf "%.1f%c\n", n, units[y+1] } else { printf "%d%c\n", n, units[y+1]} }'