psqlコマンドを使用してRedshift / Postgresデータベースにデータを挿入するシェルスクリプトがあり、>を使用してスクリプト出力をキャプチャしています。挿入された行数を除くすべてをキャプチャします。画面上でスクリプトを手動で実行すると、挿入された行が表示されますが、出力をファイルに追加すると表示されません。
現在私 -
TRUNCATE TABLE and COMMIT TRANSACTION
COPY
予想出力 -
TRUNCATE TABLE and COMMIT TRANSACTION
INFO: Load into table 'tablename' completed, 568 record(s) loaded successfully.
COPY
私のスクリプトから挿入されたコマンド -
psql -w -U uname -h dbhost db --port 1234 -c "COPY tablename FROM 's3://bucket1/tablename.json' credentials 'aws_access_key_id=' format as json 'auto';"
答え1
をリダイレクトしていますが、メッセージstdout
はとして印刷されていますstderr
。
この問題を解決するには、を追加してstderr
()の出力を()2
にリダイレクトします。stdout
1
2>&1
psql -w -U uname -h dbhost db --port 1234 \
-c "COPY tablename FROM 's3://bucket1/tablename.json' credentials 'aws_access_key_id=' format as json 'auto';" \
2>&1 > /path/to/log