Re: stderr in der bash

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Markus Hochholdinger (Markus_at_Hochholdinger.net)
Date: 04. Feb 2002


Hi,

> > Also da ich auch stdout pipen will habe ich folgende Lösung genommen:
> > ( kommando | std_pipe_prog ) 2>&1 | kommando_das_stderr_braucht
> > Was ich hierbei nicht wußte war die Klammerung der Kommandos.
> > Aber wenn ich mir das jetzt so anschaue, sieht es schon schön aus.
> > Also nochmal: Vielen Dank!
> Was passiert dann eigetlich mit stderr von std_pipe_prog?
> Das wird doch dann auch zu kommando_das_stderr_braucht weitergeleitet,
> oder?
OK, das vergaß ich zu erwähnen. Mein letztes Kommando kümmert sich um stderr
von den vorhergehenden Programmen und filtert die wichtigen Informationen für
sich heraus.

> Ist es nicht besser
> ( kommando | std_pipe_prog 2>/dev/null) 2>&1 | kommando_das_stderr_braucht
> zu verwenden?
Ja, das wäre korrekter.

Falls es jemanden interessieren sollte, was ich überhaupt geschrieben. Ich
habe ein kleines Backup Script geschrieben, welches über ssh Dateien auf
anderen Rechnern mit tar verpackt und lokal mit gzip packt. Den "verbose"
Output von tar schreibe ich gleichzeitig in eine MySQL Datenbank, damit ich
leichter gesicherte Dateien wieder finden kann. Das hier ist nur ein kleiner
Ausschnitt des Wesentlichen. Mit den ganzen Parametern und Fehlerabfragen ist
das Script fünf mal so lang.
Aber im Prinzip ist es eine Funktion, die den tar Output in SQL umbaut und
eine ssh Anweisung.
Ich finde kurze Scripte irgendwie genial :-)

-------8<------------------------------
#!/bin/bash
tar2sql()
{
  while read PERMISSIONS OWNERGROUP FILESIZE DATE TIME FILENAME
  do
      echo "INSERT INTO ARCHIVE VALUES
                 (NOW(),'$1','$PERMISSIONS','$OWNERGROUP',
                 '$FILESIZE','$DATE $TIME','$FILENAME');"
  done
}

# Backup auf Rechner $HOSTNAME starten
# und in die MySQL Datenbank schreiben
( ssh -l root $HOSTNAME "tar$TAROPTIONS" \
  | gzip --to-stdout - > $BACKUPDIR/$HOST ) \
  2>&1 | tar2sql $HOST | mysql -ubackupuser -pxxxxx backupdb
------->8------------------------------

Gruß
                                                          \|/
        MH (o o)
------------------------------------------------------oOO--U--OOo--
 Markus Hochholdinger
 e-mail mailto:Markus_at_Hochholdinger.net .oooO
 www http://www.hochholdinger.net ( ) Oooo.
------------------------------------------------------\ (----( )-
                                                       \_) ) /
                                                             (_/


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET