データベースをバックアップするために、Linuxシステムで次のコマンドを実行しています。
(echo "`date`: START DUMPING"; db_dump.sh; echo "`date`: DONE DUMPING") >>db_dump.log
db_dump.shから:
pg_dump -v --dbname=mydb | pigz | openssl enc -aes128 -k ssecret -out db_dump.gz.aes
pg_dump、pigz、opensslの情報出力をdb_dump.logにどのようにキャプチャしますか?
現在私はこれを検討しています:
pg_dump -v --dbname=mydb 2>>db_dump.log| pigz 2>>db_dump.log| openssl enc -aes128 -k ssecret -out db_dump.gz.aes 2>>db_dump.log
しかし、これは少し難しいようです...
答え1
括弧でグループ化してみてください。
( pg_dump -v --dbname=mydb | pigz | openssl enc -aes128 -k ssecret -out db_dump.gz.aes ) 2>>db_dump.log
パイプラインのすべての部分で、別々のstderr出力が同じ宛先に移動します。
答え2
次の方法を使用できます。
プログラム2>ファイル名