Ctrl+ A, ,를 누르면 명령의 출력을 H기록할 수 있습니다 . screen
그러나 출력 파일이 너무 큽니다. grep
유사한 필터를 적용하여 기록되는 내용을 제어할 수 있습니까 ?
예를 들어, 문구가 포함된 행만 기록하고 싶을 수도 있습니다 foo bar
.
답변1
흥미로운 질문입니다. 겉모습만 봤기 man screen
때문에 외부 도구를 사용하지 않고도 가능한지는 잘 모르겠습니다. 그러나 명명된 파이프와 tail 및 grep의 조합을 사용하여 이 작업을 수행할 수 있습니다.
$ mkfifo /tmp/fifo/fifo
$ tail -f /tmp/fifo/fifo | grep --line-buffered bar >> /tmp/DONE
내부 screen
작업:
logfile /tmp/fifo/fifo
녹음을 시작하세요. 기록이 완료되면 포함 된 행만 bar
에 저장됩니다 /tmp/DONE
.man fifo
FIFO 특수 파일(파이프라는 이름)은 파일 시스템의 일부로 액세스된다는 점을 제외하면 파이프와 유사합니다. 읽기 또는 쓰기를 위해 여러 프로세스에서 열 수 있습니다. 프로세스가 FIFO를 통해 데이터를 교환할 때 커널은 모든 데이터를 파일 시스템에 쓰지 않고 내부적으로 전달합니다. 따라서 FIFO 특수 파일에는 파일 시스템에 내용이 없습니다. 파일 시스템 항목은 프로세스가 파일 시스템에서 해당 이름을 사용하여 파이프에 액세스할 수 있도록 참조 지점 역할만 합니다.
이는 /tmp/fifo/fifo
디스크 공간을 차지하지 않음을 의미합니다. 이 솔루션은 제게는 효과가 있었지만 어떤 단점이나 단점이 있을지 모르겠습니다.
편집하다:
방금 다음을 fifo
사용하는 것이 좋습니다 man script
.
-f, --flush 각 쓰기 후에 출력을 플러시합니다. 이는 원격 협업에 유용합니다. 한 사람이 "mkfifo foo"를 수행할 수 있습니다. script -f foo', 다른 하나는 'cat foo'를 사용하여 수행 중인 작업을 실시간으로 모니터링할 수 있습니다.
당신이 모른다면,스크립트터미널 세션도 기록하는 유틸리티입니다.