diff --git a/eth/lp-0042-stats.sh b/eth/lp-0042-stats.sh new file mode 100755 index 0000000..66aee3a --- /dev/null +++ b/eth/lp-0042-stats.sh @@ -0,0 +1,84 @@ +#!/bin/sh +# +# 2008 Nico Schottelius (nico-nsbin at schottelius.org) +# +# This file is part of nsbin. +# +# nsbin is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# nsbin is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with nsbin. If not, see . +# +# +# Usage: $0 +# + +file=~/ethz/lp-0042-stats +date="$(date +%s)" +f="$file/$date" + +set -e + +[ "$1" = dry ] || \ + snmpget -c public -v1 -Ov lp-0042.ethz.ch mib-2.43.10.2.1.4.1.1 | \ + sed 's/.*: //' | \ + tee "$f" + +cd "${file}" + +last=0; +flast=0; + +first_time="" +first_pages="" +last_time="" +last_pages="" + +echo '$file: $new - $diff - $fdiff - $mdiff - $pages_per_hour - $pages_per_minute - $pages_month' + +for file in *; do + new=$(cat "$file"); + diff=$(($new - $last)); + fdiff=$((file - flast)); + mdiff=$((fdiff / 60)); + hdiff=$((fdiff / 3600)); + + [ "$first_time" ] || first_time="$file" + [ "$first_pages" ] || first_pages="$new" + + if [ "$mdiff" -gt 0 ]; then + pages_per_minute=$(($diff / $mdiff)); + else + pages_per_minute=-1 + fi + if [ "$hdiff" -gt 0 ]; then + pages_per_hour=$(($diff / $hdiff)); + else + pages_per_hour=-1 + fi + last="$new"; + flast="$file"; + + pages_month=$((pages_per_hour * 24 * 30)) + echo $file: $new - $diff - $fdiff - $mdiff - $pages_per_hour - $pages_per_minute - $pages_month +done + +last_time="$file" +last_pages="$new" + +diff_time="$((last_time - first_time))" +diff_time_h="$((diff_time / 3600))" +diff_time_d="$((diff_time_h / 24))" +diff_pages="$((last_pages - first_pages))" + + +echo "Overall: ${diff_time}s (${diff_time_h}h) (${diff_time_d}d): - ${diff_pages}: $((3600 * 24 * 30 * diff_pages/diff_time)) / month" +