지속적으로 추가되는 파일을 읽으면서 출력을 적게 색칠할 수 있는 방법이 절실히 필요합니다.
문제의 파일은 Resin 서블릿 컨테이너 로그입니다.
현재 색상 구성표의 "구현"에서는 키워드 주변의 색상을 사용 tail -F
하고 편집할 수 있습니다. sed
색칠할 단어가 4개 있습니다: INFO, WARN, ERROR, DEBUG
. 그 중 하나는 한 줄에 한 번씩 나타납니다.
환경 변수를 사용해 보았지만 LESSOPEN
로그를 계속 읽을 수 없는 것 같습니다. 파일이 열리면 파일이 종료되지 않습니다.
나는 서버에 대해 거의 통제할 수 없으며 기본 폴더에 내 스크립트 이외의 다른 것을 설치할 수 없으므로 패키지가 없습니다. 문제의 서버는 RHEL 6.4입니다.
문제는 less
파일을 계속 읽지 않는다는 것입니다. 환경 변수를 사용하여 로그를 지속적으로 추적하는 방법이 있습니까 LESSOPEN
, 아니면 좀 더 정교한 도구가 필요합니까?
답변1
문제는 Linux의 파이프에 있습니다. CTRLc파이프가 닫혀 있어 less
다시 열 수 없습니다.
내가 찾은 해결책은 컬러 로그를 파일로 리디렉션한 다음 less
.할 수 있는뒤에 따라가 CTRL-c
므로 다음을 수행합니다.
tail -F -c +1 | colorize > /tmp/logfilename &
less -Sr /tmp/logfilename
기적적으로 작동합니다.
답변2
여기에는 두 가지 문제가 있습니다.
- 더 낮은 속도로 출력을 색상화하는 방법
- tail -f처럼 동작하지 않게 만드는 방법
LESSOPEN
좋은 방법인 것 같지만 첫 번째 질문에 대답할 수 없습니다 . 두 번째 방법은 간단합니다. less 를 시작하거나 less 가 이미 실행 중이면 less +F
클릭합니다 .ShiftF
답변3
넌 달릴 수 있어tail -f
Emacs 쉘 버퍼에서, 그리고 Emacs가 색칠을 하도록 하세요.
하이락정규 표현식과 일치하는 단어를 빠르게 강조표시할 수 있습니다. 강조 표시 패턴을 파일에 저장하는 대략적인 방법이 있지만 파일이 실제로 명령의 출력인 경우에는 편리하지 않습니다. 간단하게 작성하시면 좋을 것 같아요메인 모드그리고글꼴 잠금 핵심 단어.
답변4
색상을 시뮬레이션하기 위해 vim을 사용합니다 less
. 매크로 가 있으며 less
Vim 색상 구성표를 사용합니다.
내 bashrc에 이것을 추가했습니다.
alias cless='/usr/share/vim/vim73/macros/less.sh'
후행/다음을 수행하려면 다음을 허용하는 Vim 플러그인이 필요합니다. 어쩌면 시도해봐꼬리 묶음끼워 넣다.