Cron: Ein Logfile für den Skript-Ablauf erzeugen
Viele Shell-Skripte laufen automatisiert ohne Benutzereingriff ab, etwa vom cron-Dämon gestartet. Da kann man sich bei einer Fehlersuche viele graue Haare ersparen, wenn das Skript-Biest über sein Tun Protokoll führt...
Mit wenigen Zeilen ist das erledigt:
#!/bin/sh
# Zunächst der Name des Logfiles
LOGFILE='/var/log/skript.log'
# Die kleine Log-Funktion
function logg () {
echo -n `date +%Y%m%d%H%M%S` >>$LOGFILE
echo " `basename $0` $1" >>$LOGFILE
# Schreibt zunächst das aktuelle Datum ins Logfile
# -n unterdrückt den Zeilenumbruch am Ende
# Hinter + steht bei date die Formatierung, in diesem Fall z.B. 20051225125031
# wer's menschen-lesbarer mag schreibt z.B. +"%d.%m.%Y %H:%M:%S"
# Hardcore C-Programmierer bevorzugen vermutlich einen C-Timestamp: +%s
# basename $0 ergibt den Aufruf-Namen des Skripts
# $1 enthält innerhalb der Funktion den Parameter, mit dem die Funktion aufgerufen wurde
}
logg "gestartet"
# protokolliert den Programmstart
#
# hier kommt der eigentliche Skript-Inhalt, der weitere logg-Aufrufe enthalten kann
#
logg "beendet"
[ch]
hallo,
ich habe folgendes script:
#!/bin/sh
LOGFILE='/var/log/veasy_svn_update.log'
function logg () {
echo -n `date +%Y%m%d%H%M%S` >>$LOGFILE
echo " `basename $0` $1" >>$LOGFILE
}
logg "starte svn update"
svn update /home/alexander/web/veasy
logg "svn update beendet"
---------------------
wie kann ich jetzt auch die ausgabe vom svn update ins log umleiten?
--------------------
danke für das nette tutorial
[Alexander | 12.11.2009]
Antworten
Hi
Auch, wenn schon etwas älter, weise einer Variable die Ausgabe des
Befehl zu und gebe die Variable mit in den logg-String.
MfG
[Posti | 29.12.2010]
Antworten
Bedingungen für die Kommentareingabe
Hinweis
Add to Del.icio.us