log aus stdout erstellen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
badera
Beiträge: 643
Registriert: 20.05.2004 20:01:50
Wohnort: Schweiz

log aus stdout erstellen

Beitrag von badera » 07.07.2007 18:41:01

Das, was ich suche, ist sicher ganz einfach durch bash Syntax erreichbar; allerdings weiss ich nicht wie:
Ich habe diverse Skripte, die aus z.B. Crontab aufgerufen werden. Diese Skripte schreiben jeweils Dinge auf den stdout, so dass ich mit

Code: Alles auswählen

./myskript.sh > mylog.txt
die Ausgabe in eine Datei umleiten kann.
Wie kann ich nun erreichen, dass der Log nicht ständig überschrieben wird, sondern die Ausgabe unten angefügt wird? sowas wie

Code: Alles auswählen

cat mylog.txt && ./myskript.sh > mylog.txt
natürlich geht das obige nicht:

Code: Alles auswählen

cat: mylog.txt: input file is output file
Gibt es eine Lösung? - Besten Dank für Eure Hilfe!
- Adrian

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 07.07.2007 18:44:51

So:

Code: Alles auswählen

./myskript.sh >> mylog.txt 

Benutzeravatar
badera
Beiträge: 643
Registriert: 20.05.2004 20:01:50
Wohnort: Schweiz

Beitrag von badera » 07.07.2007 18:48:04

8)
Besten Dank! Ich wusste es ja, dass es nicht schwer sein kann...

yeti

Beitrag von yeti » 07.07.2007 21:55:40

Man kann sich schnell mal vertippen und nur ein ">" steht dann in der Kommandozeile oder ein leicht anderer Filename...
Wenn Logs so wichtig sind und es eh Dein Skript ist, kannst Du das doch im Skript managen:

Code: Alles auswählen

$ cat myscript.sh
#!/bin/bash
exec >>$0.log
echo 'Hallo Welt!'
$ chmod 755 myscript.sh 
$ ./myscript.sh 
$ ./myscript.sh 
$ cat myscript.sh.log 
Hallo Welt!
Hallo Welt!
$ _

Antworten