我正在 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>文件名