[shell script] tee : 출력을 모니터와 로그 파일에 모두 보내기

HYEOB KIM·2022년 4월 26일
0

Shell

목록 보기
53/71

출력을 모니터파일에 모두 보낼 때 출력을 두 번 리다이렉트하는 대신 tee 명령을 사용할 수 있습니다.

tee filename

파이프 명령과 함께 사용하면 유용하게 사용할 수 있습니다.

$ date | tee test
Tue 26 Apr 2022 03:58:37 AM UTC

$ cat test
Tue 26 Apr 2022 03:58:37 AM UTC

보시는 바와 같이 모니터에도 출력하고 파일에도 내용이 저장된 것을 확인할 수 있습니다.

기본적으로 아무 옵션 없이 tee 명령을 쓰면 데이터를 덮어씁니다.

-a : 데이터 이어서 저장하기

-a 옵션을 쓰면 데이터가 이어서 저장됩니다.

$ date | tee test
Tue 26 Apr 2022 03:58:37 AM UTC

$ who | tee -a test
hyeob    pts/0        2022-04-26 01:06 (172.16.0.85)

$ cat test
Tue 26 Apr 2022 03:58:37 AM UTC
hyeob    pts/0        2022-04-26 01:06 (172.16.0.85)

스크립트에서 사용하기

스크립트를 작성할 때는 아래와 같이 활용할 수 있습니다.

$ cat test1
#!/bin/bash
testfile=$(mktemp testing.XXXXXX)
echo "this is first line" | tee $testfile
echo "this is second line" | tee -a $testfile
echo "this is third line" | tee -a $testfile

$ ./test1
this is first line
this is second line
this is third line

$ cat testing.6WMDeP
this is first line
this is second line
this is third line
profile
Devops Engineer

0개의 댓글