현재 명령이 gzip을 통해 파이프된 경우 표준 출력을 파일로 파이프하는 방법

현재 명령이 gzip을 통해 파이프된 경우 표준 출력을 파일로 파이프하는 방법

따라서 이 명령을 실행한 다음 거부해야 합니다.

innobackupex-1.5.1 --user=root --password=**** --stream=tar ./ | gzip - > /data/myfile.tar.gz

출력을 파일로 파이프하려면 어떻게 해야 합니까?

이 명령 끝에 다른 >>를 추가하면 gzip 데이터만 추가됩니다.

더 구체적으로 말하자면, innobackupex에는 진행률 출력이 있습니다. 이 출력을 파일에 추가/파이프하기를 원합니다(오류뿐만 아니라). 이 경우 gzip이 이미 파이프되었으므로 이 작업을 수행하는 일반적인 방법(>>을 추가)이 작동하지 않습니다.

답변1

innobackupex진행 상황은 출력되지 않습니다 . 그렇지 않으면 파일 stdout에 남게 됩니다 . tar.gz아마도 stderr로 출력할 것이므로(스크립트를 잠깐 살펴보면 이를 확인할 수 있음), stderr를 리디렉션해야 합니다.

innobackupex ... 2>> progress.log | gzip > file.tar.gz

답변2

innobackupex에서 STDERR을 캡처한다는 의미입니까? 귀하의 질문은 명확하지 않습니다.

innobackupex-1.5.1 --user=root --password=**** --stream=tar ./ 2> /path/to/file | gzip - > ... 

답변3

서브셸에서 다음 명령을 실행하여 이 작업을 수행하겠습니다.

( innobackupex-1.5.1 --user=root --password=**** --stream=tar ./ \
   | gzip - >  /data/myfile.tar.gz ) 2> errors

답변4

1) 압축 및 일반 파일을 위해 출력을 gzip으로 파이프하려는 경우 사용 예는 다음과 같습니다 tee.

ls -a ~ | tee ls.txt - | grep "^\."

그러면 홈 디렉터리에 있는 "숨겨진" 도트 파일이 모두 인쇄되지만(grep으로 인해) 전체 출력은 ls -als.txt에 저장됩니다.

man tee전체 설명을 보려면 를 참조하세요 .

2) 표준 출력 스트림에 표준 오류 스트림을 포함시키려는 경우 2>&1명령에 추가하십시오.

관련 정보