
다음을 수행할 수 있는 명령이 있습니까?
someprogram | tee --limit=1MB afile
여기서 "afile"에는 "someprogram"의 최신 1MB 출력이 포함됩니까?
답변1
정확히는 그렇지 않을 것입니다. 워밍업되고 파일이 채워지면 1MiB를 다시 작성합니다.질소바이트의 오래된 데이터를 파일을 따라 섞습니다.질소버퍼 끝에 새로운 데이터 바이트가 추가됩니다. 이는 완전히 이상적인 메커니즘은 아니며, 파일을 쓰는 동안 파일을 읽는 것은 "찢어짐" 문제가 발생하기 쉽습니다.
이에 가깝게 많은 명령이 존재합니다. 현재 파일과 이전 파일의 수를 2개로 늘려 언제든지 최신 출력의 1MiB ~ 2MiB를 갖고 출력은 일단 작성된 후 복사되지 않으며 전체 daemontools 시리즈를 갖게 됩니다. 로그 프로그램은 기능을 완료하도록 설계되었습니다. 본질적으로 그들은 단지 " tee
플러스"입니다.
- 댄 번스타인과 함께
multilog
daemontools와 Bruce Guenter의 글multilog
daemontools-encore에서:특정 프로그램|다중 로그 n2 s1048576 ./logdir/
- 로랑 베르코와 함께
s6-log
s6부터:특정 프로그램 | s6-log n2 s1048576 ./logdir/
- 게릿 펩의
svlogd
runit의 구성 파일은 다음과 같습니다n2 s1048576
.일부 프로그램 | svlogd ./logdir/
- 웨인 마샬의
tinylog
범죄자로부터 :특정 프로그램 |tinylog -k 1 -s 1048576 ./logdir/
- 그리고 내
cyclog
노쉬에서:특정 프로그램 | cyclog --최대 파일 크기 1048576 --최대 전체 크기 1048576 ./logdir/
추가 읽기
- 조나단 데보인 폴라드(2015). "기록". 데몬 도구 계열. 자주 주어지는 답변입니다.
- 조나단 데보인 폴라드(2017).금세기에는 또는 를 사용하지 마십시오
logrotate
.newsyslog
. 자주 주어지는 답변입니다. - https://unix.stackexchange.com/a/326166/5132
답변2
필요한 작업을 정확하게 수행하는 유틸리티가 패키지에 apache2-utils
있습니다 .rotatelogs
요약:
로그 회전 [ -l ] [ -L링크 이름] [-p프로그램] [ -f ] [ -t ] [ -v ] [ -e ] [ -c ] [ -n파일 수] 로그 파일회전 시간|파일 크기(B|K|M|G) [오프셋]
전체 설명서를 읽을 수 있습니다.이 링크.