Superuser

Autor Thema: exakte Online-Time fuer Server  (Gelesen 3497 mal)

7ami7

  • Gast
exakte Online-Time fuer Server
« am: 13. März 2002, 17:07:14 »
Ich moechte die exakte Online-Time fuer mein System ermitteln. Das heisst falls Stoerungen aufgetreten sind soll die Zeit die das System nicht benutzbar war von einer Gesammtzeit abgezogen werden.
Was ich benoetige sind Befehle Schlagwoerter in den Messages oder taktische Tips.
Was mir dazu eingefallen ist:
uptime --> bringt nur die Zeit seit dem letzten boot
last reboot --> keine Eintraege bei harten Crashes
messages --> grep nach Schlagwoertern
explorerdaten --> grep nach Schlagwoertern

Welche Ideen habt ihr dazu?

Gruss 7ami7

sonnenblen.de - Das unabhängige Sun User Forum

exakte Online-Time fuer Server
« am: 13. März 2002, 17:07:14 »

mg-midget

  • Gast
Re: exakte Online-Time fuer Server
« Antwort #1 am: 14. März 2002, 12:12:18 »
da wuerde ih an der stelle zu suchen anfangen, wo das
interface sitzt, an dem du messen willst. was heisst fuer dich
ONLINE? eth0, ifppp0, oder wo sonst?
dann wird es sehr schnell spannend, wenn du die zeiten noch
fuer jeden dienst einzeln ...

ichhabe nicht die geringste ahnung, wie das geht, aber dort
wuerde ich weiterforschen. IPSTAT, IPFILTER, IFCONFIG,
NETSTAT und so ne tools halt.


Hse


7ami7

  • Gast
Re: exakte Online-Time fuer Server
« Antwort #2 am: 14. März 2002, 14:20:53 »
Die Onlinezeit beziehe ich nicht auf Applikationen. Ich moechte die Erreichbarkeit des Servers haben. An das publicnet interface habe ich auch gedacht.

gruss
7ami7

mg-midget

  • Gast
Re: exakte Online-Time fuer Server
« Antwort #3 am: 14. März 2002, 15:04:59 »
eine GOOGLE suche zum thema "server reachability" sollte da
weiterhelfen ... ich habe da ein programm namens serversitter
gesehen, vielleicht ist es das, was du brauchst.


Hse


7ami7

  • Gast
Re: exakte Online-Time fuer Server
« Antwort #4 am: 27. März 2002, 18:18:56 »
Mir ist noch was eingefallen...
Ein Skript erzeugt eine Datei. Der Dateiname beinhaltet Tag,Monat,Uhrzeit des Erstellungszeitpunktes. Ein Zähler kopiert nun jede Sekunde eine Zahl n+1 in diese Datei. Somit hat man einen Startzeitpunkt + eine Anzahl von Sekunden. Diese können per Skript abgefragt werden. Das Ganze wird per Startskript beim booten angeworfen, jenachdem in welchem INIT der Zähler starten soll.

Beispiel:
/etc/rc3.d/S81uptimeagent start
#
Auszuführende Datei unter:
/opt/uptimeagent.sh

Datei unter:
/var/tmp/uptime.240302.1457
Inhalt:
2566

Gruss
7ami7

7ami7

  • Gast
Re: exakte Online-Time fuer Server
« Antwort #5 am: 04. April 2002, 12:02:54 »
Fertig....
Wer Interresse daran hat ;-)
-------
# more /etc/rc3.d/S81uptimeagent
#!/bin/ksh
case "$1" in
'start')
       cd /opt
       ./uptimetool &
       echo "Das Uptimetool startet am $(date '+%d.%m.%y') um $(date '+%H:%M')."
;;
'stop')
       ps -ef | grep sleep | read a b c d
       kill $c
       
;;
esac
exit 0
----
# more /opt/uptimetool
#!/bin/ksh
echo "Uptimetool startet jetzt"
#
i=0
DATUM=$(date '+%d.%m.%y.%H.%M.%S')
touch /var/tmp/test.$DATUM
while true ; do
       cp /var/tmp/test.$DATUM /var/tmp/test.$DATUM.tmp
       echo $i > /var/tmp/test.$DATUM
       i=$(($i+1))
       rm /var/tmp/test.$DATUM.tmp
       sleep 1
done
------
Und zum Abfragen...

# more uptimetest
#ksh!
#set -x
i=0
#
echo #
echo "Interuptime"
echo "-----------"
echo
#
if [[ $(ls /var/tmp/test* | wc -l) != 0 ]]; then
ls /var/tmp/test* > uptimefile
oldIFS=$IFS
IFS=$IFS.
cat uptimefile | read a Taga Monata Jahra Stundena Minutena Sekundena
#
while read  a Tag Monat Jahr Stunden Minuten Sekunden
do
IFS=$oldIFS
cat test.$Tag.$Monat.$Jahr.$Stunden.$Minuten.$Sekunden | read Sekundenges Rest
oldIFS=$IFS
IFS=$IFS.
#Zeitumrechnung
Upminuten=$(($Sekundenges/60))
#Upsekunden=$(($Sekundenges-($Upminuten*60)))
Upsekunden=$Sekundenges
Upstunden=$(($Upminuten/60))
Uptage=$(($Upstunden/24))
Upstunden=$(($Upstunden-($Uptage*24)))
Upminuten=$(($Upminuten-($Upstunden*60+($Uptage*24*60))))
Upsekunden=$(($Sekundenges-(($Upminuten*60)+($Upstunden*60*60)+($Uptage*24*60*60
))))
#
echo "Das System ist seit dem $Tag.$Monat.$Jahr um $Stunden.$Minuten $Uptage Tage $Upstunden Stunden
$Upminuten Minuten $Upsekunden Sekunden up and running."
#Gesammtzeit
Uptageall=$(($Uptageall+$Uptage))
Upstundenall=$(($Upstundenall+$Upstunden))
Upminutenall=$(($Upminutenall+$Upminuten))
Upsekundenall=$(($Upsekundenall+$Upsekunden))
#
if (( $Upsekundenall >= 60 )) ; then
Upsekundenall=$(($Upsekundenall-60))
Upminutenall=$(($Upminutenall+1))
fi
if (( $Upminutenall >= 60 )); then
Upminutenall=$(($Upminutenall-60))
Upstundenall=$(($Upstundenall+1))
fi
if (( $Upstundenall >= 24 )); then
Upstundenall=$(($Upstundenall-24))
Uptageall=$(($Uptageall+1))
fi
#
i=$(($i+1))
done < uptimefile
else
echo "Keine Eintraege vorhanden"
exit
fi
IFS=$oldIFS
#Berechnung Online Zeit
date '+%d %m %y %H %M' | read Tagj Monatj Jahrj Stundej Monatj Sekundej
echo #
echo "Uptime gesammt"
echo "--------------"
echo
echo "Das System ist insgesammt $Uptageall Tage, $Upstundenall Stunden, $Upminutenall Minuten und $Up
sekundenall Sekunden online bei $i Unterbrechungen."

Gruss
7ami7