Betriebssysteme > Solaris

exakte Online-Time fuer Server

<< < (2/2)

7ami7:
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

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln