!["journalctl --disk-usage"와 "journalctl | wc"가 잘 일치하지 않는 이유는 무엇입니까?](https://linux55.com/image/138573/%22journalctl%20--disk-usage%22%EC%99%80%20%22journalctl%20%7C%20wc%22%EA%B0%80%20%EC%9E%98%20%EC%9D%BC%EC%B9%98%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
긴 이야기 짧게로그는 약 770MiB를 저장하지만 표시 로그는 90MiB의 데이터만 생성하는 이유는 무엇입니까?
#고쳐 쓰다#
나는 journalctl -a -o verbose
적어도 약 530MiB를 생성했지만 저널이 디스크에서 사용하는 770MiB보다 적은 를 만들었습니다. 어쨌든 디스크의 로그는 어떻게든 압축되어 530MiB보다 작아야 하며 더 크지 않아야 합니다. 무슨 일이야?
#업데이트2#
journald
대부분 빈 로그 파일을 생성하는 경향이 있는 것 같습니다 .
$> cat [email protected]~ | wc -c
8388608
#> cat [email protected]~ | sed 's/\x00//g' | wc -c
47181
이것이 @Mioriin의 의견이 제안하는 것일 수 있습니다. 저널드가 저장한 로그 파일이 8MiB인데 거의 비어 있는 이유가 있나요?
배경이 있는 긴 버전
/var/log
내 시스템은 Linux 커널 dmesg 출력, gnome DE 등으로 매우 수다스럽습니다. 슬프게도 사용하는 시스템 로거를 통해 내 디렉토리를 채웁니다 journald
(여전히 표준 시스템 아치 Linux에서).
찾아보니 du -hs /var/log
대략 2GiB정도 나오는데 주로 journald
저널이더군요. 90일이 지난 데이터를 삭제했는데 journalctl --vacuum-time=90d
안타깝게도 3개월이 지난 로그는 삭제되어 journald
로그에 사용되는 디스크 공간이 약 770MiB로 줄었습니다.
$> journalctl --disk-usage
Archived and active journals take up 768.0M in the file system.
정말 대단해요. 하지만 내 아치 리눅스 박스에 담긴 90일간의 770MiB 데이터는 꽤 많은 것 같아서 770MiB가 어떤 용도로 사용되는지 조사해 보았습니다. 로그 출력의 초기 크기를 측정하기 위해 IMHO 첫 번째 논리적 단계를 수행했습니다.
$> journalctl | wc
584467 7662317 90227741
그리고 다시 한 번 확인해 보세요.
$ journalctl | dd of=/dev/null iflag=fullblock bs=1M
86+1 records in
86+1 records out
90244229 bytes (90 MB, 86 MiB) copied, 9.21893 s, 9.8 MB/s
어떤 이유에서든 읽고 있음을 나타냅니다."공간을 절약하기 때문에 바이너리입니다." journald
일반 텍스트는 770MiB 미만의 데이터를 생성하지 않고 90MiB만 생성합니다.
이제 제 질문은 왜 이 두 숫자가 일치하지 않는 걸까요? 사랑하는 사람이 어떻게 journald
770MiB를 사용하여 90MiB의 데이터를 저장할 수 있습니까?
"결과를 측정하고 혼란스러워하는 것" 외에 나 자신을 돕기 위해 또 무엇을 했습니까?
나는 긴 콘텐츠를 훑어보고 man journactl
그것이 제공하는 다소 복잡한 세부 사항에 확실히 압도당했지만, 이진 압축 저널 데이터가 이진 압축 저널 데이터보다 더 많은 공간을 사용하게 만들 수 있는 반직관적인 내용을 제안하는 내용을 찾을 수 없었습니다. 실제 일반 텍스트 복제 로그입니다.
나는 "간단한" 설명이 있어야 한다고 생각한다.