로그를 들어, 처리 rsyslogd
을 사용하는 것이 좋습니다 경우 응용 프로그램 자체!
1) 이 작업을 수행하는 간단한 방법은 두 가지 규칙으로 sed
에 연결하는 것입니다. 첫 번째 규칙 '1,1000w head-lines.txt'는 head-lines.txt 파일에 저장되며, 두 번째 규칙은 인쇄에 사용됩니다.
파일에 쓰기 처음 1000 선, 인쇄 모든 라인 : 1001부터
$ seq 1000000000000 | sed -n -e '1,1000w head-lines.txt' -e '1,$p'
쓰기 파일로 처음 1000 선, 인쇄 모든 라인 :
$ seq 1000000000000 | sed -n -e '1,1000w head-lines.txt' -e '1001,$p'
참고 :
2) 좀 더 복잡한 방법은 bash에서 SIGPIPE를 처리하는 것입니다. 배쉬에서 나는 내 서버에 오랫동안 실행 seq 100000000
을 실행하고 파일에 출력의 처음 1000 선을 얻을 :
$ trap "" SIGPIPE && seq 100000000 2>/dev/null | head -n 1000 > your.log
이 때 head
가 종료됩니다 처음 1000 선을 얻을 것이다 일반적 SIGPIPE가 seq
로 전송됩니다.
$ help trap
trap: trap [-lp] [[arg] signal_spec ...]
Trap signals and other events.
If ARG is the null string each SIGNAL_SPEC is ignored by the
shell and by the commands it invokes.
그러나 예에서'seq'는 작업이 끝나고 OP는'응용 프로그램 자체를 멈추지 않고 보길 원합니다! ' –
네가 맞다. – sashang
@skwllsp 'tee -i'를 사용하도록 변경했습니다. seq를 계속 허용해야합니다. – sashang