Output von mysqldump auf stdout

Dieses Thema im Forum "SQL und Datenbanken" wurde erstellt von theton, 06.11.2006.

  1. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Wie kann ich mysqldump beibringen, dass es seinen Output nicht auf stderr, sondern auf stdout ausgeben soll?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 supersucker, 06.11.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Code:
    mysqldump foobar 2>&1
    klappt nicht?
     
  4. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Nein, geht so nicht. Ich werde mal versuchen das Problem etwas genauer zu erläutern. Ich will z.B. die DB xrms sichern und mache das in einem Skript, das dann beispielsweise folgenden Code ausführt:
    Code:
    echo "Database xrms"
    mysqldump -h db.server.net -u root -pmeinpasswort -l -c -v --quote-names xrms > xrms.sql
    
    Dabei kommt dann auf stderr ein Output der Art
    Code:
    -- Retrieving table structure for table ControlledObject...
    -- Sending SELECT query...
    -- Retrieving rows...
    -- Retrieving table structure for table ControlledObjectRelationship...
    -- Sending SELECT query...
    -- Retrieving rows...
    -- Retrieving table structure for table GroupMember...
    -- Sending SELECT query...
    -- Retrieving rows...
    ...
    
    während der echo-Befehl seinen Output auf stdout auswirft.
    Diesen Output möchte ich nun zusammen mit anderem Output des Skripts (der auf stdout ausgegeben wird) in eine Logdatei schreiben. Da mysqldump aber auf stderr schreibt, kann ich momentan nur 2 getrennte Log-Dateien verwenden
    Code:
    ./meindumpskript > backup.log 2> backup.err
    
    In der backup.log landet jeglicher Output des Skripts (z.B. die echo-Befehle mit den DB-Namen), während in der backup.err nur der Output von mysqldump landet. Nun will ich das aber in einer einzigen Logdatei haben, so dass das Log nachher etwa so aussieht:
    Code:
    Database xrms
    -- Retrieving table structure for table ControlledObject...
    -- Sending SELECT query...
    -- Retrieving rows...
    -- Retrieving table structure for table ControlledObjectRelationship...
    -- Sending SELECT query...
    -- Retrieving rows...
    -- Retrieving table structure for table GroupMember...
    -- Sending SELECT query...
    -- Retrieving rows...
    ...
    
    Damit das aber geht, müsste der Output von mysqldump auf stdout ankommen, damit ich es mit einer einfachen Umleitung '>' in die backup.log umleiten kann.
     
  5. #4 supersucker, 06.11.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Hmm,

    kannst du das Ganze nicht einfach an tee pipen?

    So müsste das IMHO klappen.
     
  6. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    tee liest ja auch nur vom stdin, wenn ich nicht falsch informiert bin.
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 hoernchen, 06.11.2006
    hoernchen

    hoernchen UBERgarstiges nagetier

    Dabei seit:
    17.02.2005
    Beiträge:
    1.081
    Zustimmungen:
    0
    an sich gibts den parameter -q, wenn ich micht recht erinnere. der schupft nach stdout.
     
  9. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Also in der Manpage ist nichts darüber zu finden, vor allem auch nicht, wie ich tee dazu bewegen könnte von stderr und nicht von stdout zu lesen.
    Der Parameter -q von mysqldump sorgt lediglich dafür, dass der Output nicht gebuffert wird, sondern direkt an stdout geleitet wird. Das würde evtl. den Dump etwas beschleunigen, bringt mir aber nichts, wenn ich die "System-Meldungen" von mysqldump auf dem stdout haben will. Der Dump selbst landet ja eh immer auf stdout.
    Evtl. ist das mit mysqldump ja auch der falsche Ansatz. Alternative Vorschläge zum Dumpen von MySQL-DBs sind daher auch willkommen. :)
     
Thema:

Output von mysqldump auf stdout

Die Seite wird geladen...

Output von mysqldump auf stdout - Ähnliche Themen

  1. Screen output in variable oder datei

    Screen output in variable oder datei: Hallo Unixvoard-Nutzer :winke:, Ich habe in screen eine konsole y offen und eine konsole x im hintergrund. Ich bin in konsole y und möchte an...
  2. Output an Zeilen in bestehendem file anhängen

    Output an Zeilen in bestehendem file anhängen: Hi ich hab ein Script, dass mir Adressen in einem file isoliert (hier stehen wirklich nur zahlen) danach läuft eine for Schleife durch in der die...
  3. Pulseaudio unter Debian multiple Output

    Pulseaudio unter Debian multiple Output: Hallo, ich habe ein Problem mit meinem Pulseaudio Server (0.9.21-3) unter Debian Squeeze. Und zwar habe ich eine Soundkarte mit analogem und...
  4. Output bearbeiten

    Output bearbeiten: Hallo Leute, kurze Frage: wie kann ich denn geschickt aus einer Datei, deren Inhalt etwa so aussieht: Harry Klaus Kurt eine Variable...
  5. Input /Output Error bei Customize Kit i.V.m Karmic Koala

    Input /Output Error bei Customize Kit i.V.m Karmic Koala: Hallo Ich habe folgendes Problem bei der Verwendung des Customize Kits (2.0.12) Der Vorgang statrtet ganz normal, wird jedoch nach einigen...