Feb
2004
Posted in bash onlinezeit aufzeichnen
Die beiden folgenden Scripte (.local) müssen, jeweils je nach System in die für das DIALING verantwortlichen Scripte, eingebunden werden. Auf meinem Ipcop mit ISDN-Einwahl sind hierfür z.B. in “/etc/ppp/ip-up” die Zeile: “system(‘/etc/ppp/ip-up.local’);” und in der “/etc/ppp/ip-down” die Zeile: “system(‘/etc/ppp/ip-down.local’);” anzufügen. ip-up.local und ip-down.local müssen im selben Verzeichnis liegen!
$ cat /etc/ppp/ip-up.local
#!/bin/sh
#
#= = = = = = = = = = = = = = = = = = = Online Startzeit aufzeichnenecho -n “$(date +”%d.%m.%Y %H:%M:%S”) – ” >> /etc/ppp/online-time
$ cat /etc/ppp/ip-down.local
#!/bin/sh
#
#= = = = = = = = = = = = = = = = = = = Online Endzeit aufzeichnenecho “$(date +”%d.%m.%Y %H:%M:%S”)” >> /etc/ppp/online-time
Hier nun das Auswertungsscript der Onlinezeit. Man beachte, dass die Auswertung Sekundengenau ist! Hat man einen Tarif der nach Minuten abgerechnet wird, hat mir die Erfahrung gezeigt, dass man die Anzahl der Verbindungen halbiert und auf die ausgegebenen Minuten hinzu addiert.
$ cat /bin/online
#!/bin/sh
case $* in
-d) PARAM=`/bin/date +%d.%m.%Y`;;
-m) PARAM=`/bin/date +%m.%Y`;;
-y) PARAM=`/bin/date +%Y`;;
-?|-h|–help) echo “calc [-d|-m|-y|]”
echo “Auswertung der Onlinezeit”
echo
exit;;
*) PARAM=”$*”;;
esacgrep “$PARAM” /etc/ppp/online-time | awk ‘BEGIN { total=0 }
NF == 5 {
n=split($1,d,”.”)
date1=(d[1]+d[2]*30+d[3]*365)
n=split($2,t,”:”)
time1=(t[1]*3600+t[2]*60+t[3])n=split($4,d,”.”)
date2=(d[1]+d[2]*30+d[3]*365)
n=split($5,t,”:”)
time2=(t[1]*3600+t[2]*60+t[3])time=(date2-date1)*3600*24+time2-time1
total=total+time
}
END
{
hours = total / 3600
minit = total / 60
print “n”
print “= = = = = = = = = = = = = = = = = = = ONLINE”
print “Verbindungen: “NR”"
print “Stunden: “hours”"
print “Minuten: “minit”"
print “= = = = = = = = = = = = = = = = = = = ”
}’
