Hallo Leute,
da ich momentan am Skript schreiben bin hab ich gleich noch ein nützliches Skript gepastelt.
Mit ihm kann man den Speicherbedarf eines Programmes zyklisch in eine Logdatei Schreiben zu lassen.
#!/bin/sh
#
# Solar-Logger - A Daemon for logging Data from a Solar Plant
# Copyright (C) 2007 Klaus Dotterweich (dr.dotti@gmx.de)
#
# This program 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.
#
# This program 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 this program;
# if not, see .
#
# Solar-Logger - Ein Daemon zum loggen der Daten einer Solaranlage
# Copyright (C) 2007 Klaus Dotterweich (dr.dotti@gmx.de)
#
# Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License,
# wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren,
# entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version.
#
# Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird,
# aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder
# der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.
#
# Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben.
# Falls nicht, siehe .
#
Programm='Solar-Logger' # Programm dessen Speicherbedarf geloggt werden soll.
IntervallZeit=1 # Loggintervall
Loggen="JA" # Um alles zu Loggen "DEBUG" und nur sinnvolle Sachen zu Loggen "JA"
LogPfad='/root/Solar-Logger-0.3/DebugLog/Speicher/' # Pfad der Datei in die geloggt werden soll
LogDateiName='Solar-Logger-Speicher.log' # DateiName der LogDatei
LogDatei=$LogPfad`date '+%d.'`$LogDateiName # Datei in die geloggt werden soll
#######################
# Startzeit des Skriptes Merken
#######################
ZeitstempelStart=`date '+%s'`
#####################
# Start des Watchdog loggen
#####################
if ([ $Loggen == "DEBUG" ] || [ $Loggen == "JA" ])
then
echo `date '+%d.%m.%y %T'`: SpeicherLogger gestartet. >> $LogDatei
echo `date '+%d.%m.%y %T'`: IntervallZeit is $IntervallZeit in Minuten. >> $LogDatei
fi
TempStartZeit=$StartZeit # Die Zeit zum Starten des Solar-Loggers wieder zurücksetzen
#####################
# Programmschleife
#####################
while [ true ]
do
LogDatei=$LogPfad`date '+%d.'`$LogDateiName # Datei in die geloggt werden soll
#######################
# Startzeit der Schleifen Merken
#######################
ZeitstempelStartSchleife=`date '+%s'`
# Speicher Bedarf Loggen
echo `date '+%d.%m.%y %T'`: " "`top -b -n 1 -p $(pidof Solar-Logger) | tail --lines=2 | head --lines=1` >> $LogDatei
#######################
# Endezeit der Schleifen Merken
#######################
ZeitstempelEndeSchleife=`date '+%s'`
#################################################
# SchleifenZeit berechnen
#################################################
SchleifenZeit=`/usr/bin/expr $ZeitstempelEndeSchleife - $ZeitstempelStartSchleife`
if [ $Loggen == "DEBUG" ]
then
echo `date '+%d.%m.%y %T'`: Die Schleifenzeit beträgt $SchleifenZeit. >> $LogDatei
fi
# Die Schleife schlafen legen
if [ $Loggen == "DEBUG" ]
then
echo `date '+%d.%m.%y %T'`: Watchdog legt sich für `/usr/bin/expr $IntervallZeit \* 60` Sekunden schlafen. >> $LogDatei
fi
sleep `/usr/bin/expr $IntervallZeit \* 60`
done
Ich hoffe, das ich mit diesem Skript das Problem mit dem auserplanmäsigen Beenden des Logger aufklären kann.#
mfg
Klaus D.