Veröffentlicht 28. März 201114 j Hallo, ich habe ein Shellscript, welches die ganzen Ausgaben in eine logdatei schreiben soll. LOGDATEI=test.log ls -la >> $LOGDATEI java -help >> $LOGDATEI tftp 192.168.1.1 >> $LOGDATEI Beim dritten Fall schreibt er mir das Ganze in die Shell, statt in die LOGDATEI. (Egal, ob es fehlschlägt oder nicht). Ich möchte aber alles in der Log-Datei haben. Wo ist der Fehler/ Was mache ich falsch?
28. März 201114 j mich würde mal interessieren wozu Du ungefilterten Output von stdout für diese Befehle in eine Logdatei schreiben willst? Versuch mal das: tftp 192.168.1.1 >> $LOGDATEI 2>&1 &
28. März 201114 j Danke, funktioniert. Ich finde so sieht es eleganter aus, wenn bei einem erfolgreichen durchlaufen nur da steht Punkt 1 funktioniert, Punkt 2 funktioniert ... Nach dem Fehler kann man ja in der Logdatei schauen, außerdem bleibt eine .log-Datei erhalten und man kann nach einem Neustart den Fehler im Internet suchen.
28. März 201114 j Naja, das wäre die Antwort auf die Frage, warum überhaupt stdout abgegriffen wird. Und warum nun "ungefiltert"?
30. März 201114 j Ich will das noch filtern, bloß wie, weiß ich noch nicht, benutze erst einmal google.
31. März 201114 j Habe beim Filtern das Problem, dass diese Variante nicht funktioniert: grep -v -C 5 text kennt jemand dafür einen funktionierenden Befehl?
1. April 201114 j Bei mir macht der beim Zusammenspiel gar nicht. Mache ich z.B. ls -la | grep -v . Dann zeigt er mir alles, außer das Punktverzeichnis an ->ok Mache ich z.B.ls -la | grep -C 2 . Dann zeigt er mir den Bereich2 über und unter der Datei . ->ok Bei beiden ls -la | grep -v -C 2 . Zeigt er mit alle Verzeichnisse an -> fail
4. April 201114 j Wenn du den Punkt so schreibst steht er für das aktuelle Verzeichnis. Wenn du ihn als Anfang des Dateinamens verwenden willst musst du ihn escapen. Beispiel unter Ubuntu: la -a | grep -v -C 2 '^\.'
4. April 201114 j Dateienverzeichnis: insgesamt 27912 drwxr-sr-x 12 a nogroup 4096 31. Mär 13:46 . drwxr-sr-x 78 a nogroup 4096 4. Apr 08:51 .. drwxr-xr-x 4 a nogroup 4096 3. Okt 2009 boot -rw-r--r-- 1 a nogroup 118225 9. Feb 15:22 cao_xtc_functions.php Den Punkt habe mal als Beispiel genommen, mit den anderen Dateien z.B. boot funktioniert der Befehl auch nicht.
4. April 201114 j Welches Ergebnis erwartest du denn wenn du in diesem Verzeichnis "ls -la | grep -v -C 2 boot" ausführst? Ich erwarte, dass du das ganze Verzeichnis gelistet bekommst., weil boot ja durch das -C 2 vom .. gezeigt wird.
4. April 201114 j "Ich erwarte, dass du das ganze Verzeichnis gelistet bekommst." Damit hast du recht. Siehe post vom 1.4.2011 Ich hatte ehr erwartet, dass er den Bereich von -C 2 nimmt und ihn aus der Liste entfernt. Funktioniert das mit grep? Wenn ja, bitte die variante posten, wenn nein, einfach 'nein' posten. (Habe das jetzt über sed gelöst)
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.