bash 스크립트 내에서 타임 스탬프가있는 파일에 stdout과 stderr을 모두 복사하는 방법은 무엇입니까?

mles

나는 stdout을 파일로 복사 하는이 대답을 사용했습니다 .

$ cat /etc/dehydrated/syncNexusCertificatesHook.sh 
#!/bin/bash -ex

exec &> >(ts '[%Y-%m-%d %H:%M:%S]' | tee -a /var/log/dehydrated.log >&2 )
...

스크립트를 실행할 때 perl: warning: Setting locale failed.터미널에 인쇄되었지만 로그 파일 에는 인쇄되지 않았습니다.

스크립트의 모든 출력을 타임 스탬프와 함께 콘솔에 인쇄하고 로그 파일에 저장하고 싶습니다. 이것을 어떻게 달성 할 수 있습니까?

Thanasisp

명령의 stdout과 stderr를 명령 시퀀스로 리디렉션하고 마지막으로 콘솔과 파일 모두로 리디렉션하려면 다음 구문을 사용하면됩니다.

command |& ts '[%Y-%m-%d %H:%M:%S]' | tee file

이것의 동의어입니다

command 2>&1 | ts '[%Y-%m-%d %H:%M:%S]' | tee file

또는 두 스트림을 프로세스 대체로 리디렉션

command &> >(ts '[%Y-%m-%d %H:%M:%S]' | tee file)

또는 출력을 리디렉션 한 다음 stderr를 stdout의 복사본으로 만듭니다.

command > >(ts '[%Y-%m-%d %H:%M:%S]' | tee file) 2>&1

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관