Hallo,
ich möchte, dass meine Scripte, z.b. das folgende Update, ein Logfile erzeugen.
#!/bin/sh /usr/bin/apt-get --yes update /usr/bin/apt-get --yes upgrade /usr/bin/apt-get --yes dist-upgrade /usr/bin/apt-get --yes autoclean /usr/bin/apt-get --yes clean /usr/bin/apt-get --yes autoremove exit 0
Ich möchte das Rad nicht neu erfinden und suche eine wiederverwendbare universelle Lösung, um auch meine anderen Scripte automatisch Loggen zu lassen.
Gibt es einen Mechanismus in Ubuntu, wo ich meine Logs automatisch mit nach /var/log/... schreiben lassen kann ?
Momentan habe ich mir folgende Möglichkeiten überlegt:
1. sich selbst mit-Loggendes Script, nur eine Zeile mehr in jedem Script:
#!/bin/sh [ ! "$1" = "log" ] && sh $0 log 2>&1 | tee -a $0.log && exit 0; ...
2. mit Pipe:
mein_script 2>&1 | mein_logger
mein_logger macht dabei ein tee -a $log
3. als Unterprozess:
mein_logger mein_script
mein_logger macht dann ein sh $1 2>&1 | tee -a $log
Was ist nun die beste Lösung ? Momentane Probleme bei mein_logger sind dabei:
manche Scripte müssen per sudo aufgerufen werden,
der Default User kann unter /var/log/ keine Files anlegen,
jedes mein_script soll automatisch ein eigenes Logfile bekommen, ohne dass ich es spezifizieren muss
Vielen Dank u1000