Wie Rohr alle terminal-Ausgabe einschließlich Fehlermeldungen vom Skript in eine log-Datei

Ich versuche, eine lesbare Protokolldatei für eine große backupscript.

In dem script, das ich leiten Sie einfach alle Ausgaben der Befehle in eine große Datei, die dann später "gereinigt" werden durch das Skript. Zum Beispiel:

echo "Error occurred" >> log.file
mount disk >> log.file

Warnungen und Fehler, die ich verpasst haben, ich Pfeife auf die Konsole an, wenn das Skript ausgeführt wird.

backup.script >> log.file

Aber auch als, Fehlermeldungen sind nicht immer angemeldet in meiner Datei, wenn das Skript ausgeführt wird (mit Pfeife) von cron bekomme ich mails von "rsync" und " Skript-Fehler:

rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: write failed on "/mnt/backup1/xxxxx": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(322) [receiver=3.0.9]
rsync: connection unexpectedly closed (215 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]

und wenn ein Skriptfehler Auftritt:

/data/scripts/backup.auto: line 320: syntax error near unexpected token `else'

Wie kann ich diese Fehlermeldung in meiner log-Datei?

  • Sagen >> log.file 2>&1 statt >> log.file.
  • Ich bin im Büro, also ich nicht versuchen Sie es (kein linux hier), aber der Grund ist anders, file-Deskriptoren verwendet werden. devnull gab nur die Antwort auf diese Frage. Die Reihenfolge der >> und 2>&1 wichtig ist btw.
  • 3 Antworten in der gleichen minute, das nenne ich eine schnelle Antwort! Dank
  • Beachten Sie, dass Sie können, reinigen Sie Ihr Skript durch die Gruppierung von aufeinanderfolgenden Befehle, die schreiben in die gleiche Datei: echo foo >> log.file; echo bar >> log.file werden würde { echo foo; echo bar; } >> log.file.
  • Siehe auch teelog im how-do-i-get-beide-stdout-und stderr-zu-gehen-an-der-terminal-und-ein-log-Datei stackoverflow.com/questions/363223
InformationsquelleAutor Requist | 2014-03-04
Schreibe einen Kommentar