![파이프를 사용할 때 프로그램 오류를 파일로 리디렉션하는 방법](https://linux55.com/image/151729/%ED%8C%8C%EC%9D%B4%ED%94%84%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EB%95%8C%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%20%EC%98%A4%EB%A5%98%EB%A5%BC%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
데이터베이스를 백업하기 위해 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>파일명