로그 출력 셸 스크립트
덕분에 표준 출력과 표준 오류 출력을 모두 로그에 기록하고 표준 오류만 재생하려는 소망이 이루어졌다.
exec &>
"exec & >"로 표준 출력, 표준 오류 출력을 로그로 전송해 보십시오.
테스트 스크립트
#!/bin/bash
### ログファイル
log=/usr/local/var/log/gorira/$(date '+%Y%m%d-%H%M%S').log
### 日時付きでログファイルへ流し込みます
exec &> >(awk '{print strftime("[%Y/%m/%d %H:%M:%S] "),$0 } { fflush() } ' >> $log)
pwd
ls -l naiyo
ls -l aruyo
실행 결과
[2021/12/04 09:23:52] /home/gorira
[2021/12/04 09:23:52] ls: cannot access 'naiyo': No such file or directory
[2021/12/04 09:23:52] -rw-r--r-- 1 root root 0 12 4 09:13 aruyo
exec 1>
"exec1 >"으로 표준 출력을 로그로 전송해 보십시오.
테스트 스크립트
#!/bin/bash
log=/usr/local/var/log/gorira/$(date '+%Y%m%d-%H%M%S').log
exec 1> >(awk '{print strftime("[%Y/%m/%d %H:%M:%S] "),$0} {fflush()}' >>$log)
pwd
ls -l naiyo
ls -l aruyo
실행 결과
[2021/12/04 09:25:55] /home/gorira
[2021/12/04 09:25:55] -rw-r--r-- 1 root root 0 12 4 09:13 aruyo
ls: cannot access 'naiyo': No such file or directory
exec 2>
"exec2 >"로 표준 오류 출력을 로그로 전송해 보십시오.
테스트 스크립트
#!/bin/bash
log=/usr/local/var/log/gorira/$(date '+%Y%m%d-%H%M%S').log
exec 2> >(awk '{print strftime("[%Y/%m/%d %H:%M:%S] "),$0} {fflush()}' >>$log)
pwd
ls -l naiyo
ls -l aruyo
실행 결과
[2021/12/04 09:33:57] ls: cannot access 'naiyo': No such file or directory
/home/gorira
-rw-r--r-- 1 root root 0 12 4 09:13 aruyo
... 하는 김에
로그 출력 내용을 화면에 표시하려면 "tee"명령을 사용합니다.
테스트 스크립트
#!/bin/bash
log=/usr/local/var/log/gorira/$(date '+%Y%m%d-%H%M%S').log
### tee に食わせる
exec &> >(awk '{print strftime("[%Y/%m/%d %H:%M:%S] "),$0} {fflush()}' | tee -a $log)
pwd
ls -l naiyo
ls -l aruyo
실행 결과
[2021/12/04 09:36:05] /home/gorira
[2021/12/04 09:36:05] ls: cannot access 'naiyo': No such file or directory
[2021/12/04 09:36:05] -rw-r--r-- 1 root root 0 12 4 09:13 aruyo
[2021/12/04 09:36:05] /home/gorira
[2021/12/04 09:36:05] ls: cannot access 'naiyo': No such file or directory
[2021/12/04 09:36:05] -rw-r--r-- 1 root root 0 12 4 09:13 aruyo
Reference
이 문제에 관하여(로그 출력 셸 스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/lovegorira/articles/62849db9f25012텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)