Initialisierungsvorgang eines neuen Db Clusters mit "initdb" oder "pg_ctl init" loggen

Konfiguration des PostgreSQL Datenbankservers.
Antworten
hotop
Neuer Benutzer
Beiträge: 2
Registriert: Di 7. Aug 2018, 14:54

Initialisierungsvorgang eines neuen Db Clusters mit "initdb" oder "pg_ctl init" loggen

Beitrag von hotop » Di 7. Aug 2018, 15:07

Hallo zusammen,

gibt es eine Möglichkeit, auf einem Windowsrechner die Consolenausgabe der Befehle

initdb.exe ...
pg_ctl.exe init ...

in eine Logdatei zu schreiben ?

Bei "pg_ctl" kann man zwar einen Parameter -l angeben. Aber der funktioniert nur in Verbindung mit dem Befehl "start". Das Umleiten der Consolenausgabe mit dem Umleitungssymbol '>' (also dem Größer-Zeichen) funktioniert bei beiden Tools auch nicht.

Ich starte die genannten Kommandozeilentools aus einer C++ Anwendung und möchte, dass die Consolenausgabe in eine Logdatei geschrieben wird. Programmieren möchte ich so eine Consolenausgabe-Umleitung aber nicht unbedingt. Vlt. geht das gar nicht.

Kennt jemand eine einfache Möglichkeit, die ohne Programmierung funktioniert ? Ich verstehe gar nicht, warum das nicht von Haus aus funktioniert ...

Bin für jeden Tipp dankbar. Vielen Dank im Vorraus.

Holger

akretschmer
Erfahrener Benutzer
Beiträge: 7480
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Initialisierungsvorgang eines neuen Db Clusters mit "initdb" oder "pg_ctl init" loggen

Beitrag von akretschmer » Mi 8. Aug 2018, 09:09

du wirst die Fehlerausgabe umleiten wollen, nicht die Standardausgabe.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

hotop
Neuer Benutzer
Beiträge: 2
Registriert: Di 7. Aug 2018, 14:54

Re: Initialisierungsvorgang eines neuen Db Clusters mit "initdb" oder "pg_ctl init" loggen

Beitrag von hotop » Mi 8. Aug 2018, 10:16

Guten Morgen,

danke für den Hinweis.

Mein Fehler war, dass ich die Umleitung der Ausgabe so versucht habe (was bei anderen Programmen auch funktioniert)

pg_ctl.exe init -D c:\temp\database -o "-E SQL_ASCII > c:\temp\POSTGRES\initdb.log

Wenn ich das so mache

pg_ctl.exe init -D c:\temp\database -o "-E SQL_ASCII > c:\temp\POSTGRES\initdb.log 2>&1

funktioniert es Gott sei Dank.

Ein schöner Start in den Tag. Dank Deines Tipps ;-)

Antworten