파이프를 사용할 때 프로그램 오류를 파일로 리디렉션하는 방법

파이프를 사용할 때 프로그램 오류를 파일로 리디렉션하는 방법

데이터베이스를 백업하기 위해 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>파일명

관련 정보