df와 du 출력의 차이를 어떻게 분류하나요?

df와 du 출력의 차이를 어떻게 분류하나요?

노트:나는 이 사이트의 다른 질문에 대해 완전히 알고 있습니다.

내 문제는 다음과 같이 나타납니다.

$ du -sh / --exclude=/proc
4.0G    /

그리고

$ df -h /
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/vg_os-lv_root   18G 16.0G  1.9G  90% /
devtmpfs                   3.9G     0  3.9G   0% /dev
tmpfs                      3.9G   39M  3.8G   1% /dev/shm
tmpfs                      3.9G   17M  3.9G   1% /run
tmpfs                      3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/vda1                  497M  215M  283M  44% /boot
tmpfs                      783M     0  783M   0% /run/user/937000511
tmpfs                      783M     0  783M   0% /run/user/937000593

이 불일치의 원인을 확인하기 위해 이 문제를 어떻게 분류할 수 있습니까?

답변1

이 특별한 경우 문제는 파일을 회전시키는 실행 중인 데몬이었지만 새 파일에 대한 로깅을 시작하도록 트리거하는 logrotate서비스가 전송되지 않은 것입니다 . 이로 인해 이 두 CLI 도구의 작동 방식을 고려할 때 kill -HUP12G 로그 파일이 마치 HDD의 공간을 차지하는 것처럼 계속 표시되어 통과 df하지만 표시되지는 않습니다 .du

라소프

로그 파일을 사용 lsof하고 살펴보면 문제가 나타났습니다.

$ lsof | grep -E 'COMMAND|/var/log/maxscale'
COMMAND     PID   TID           USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
maxscale   5976             maxscale  cwd       DIR              253,1        4096      82757 /var/log/maxscale
maxscale   5976             maxscale    4w      REG              253,1 12506246848      82752 /var/log/maxscale/maxscale.log (deleted)
maxscale   5976  5977       maxscale  cwd       DIR              253,1        4096      82757 /var/log/maxscale
maxscale   5976  5977       maxscale    4w      REG              253,1 12506246848      82752 /var/log/maxscale/maxscale.log (deleted)
maxscale   5976  5978       maxscale  cwd       DIR              253,1        4096      82757 /var/log/maxscale
maxscale   5976  5978       maxscale    4w      REG              253,1 12506246848      82752 /var/log/maxscale/maxscale.log (deleted)
maxscale   5976  5979       maxscale  cwd       DIR              253,1        4096      82757 /var/log/maxscale
maxscale   5976  5979       maxscale    4w      REG              253,1 12506246848      82752 /var/log/maxscale/maxscale.log (deleted)
maxscale   5976  5980       maxscale  cwd       DIR              253,1        4096      82757 /var/log/maxscale
maxscale   5976  5980       maxscale    4w      REG              253,1 12506246848      82752 /var/log/maxscale/maxscale.log (deleted)
MHD-singl  5976  5981       maxscale  cwd       DIR              253,1        4096      82757 /var/log/maxscale
MHD-singl  5976  5981       maxscale    4w      REG              253,1 12506246848      82752 /var/log/maxscale/maxscale.log (deleted)
bash      12629                 root  cwd       DIR              253,1        4096      82757 /var/log/maxscale

출력에는 lsof문제의 크기와 실제로 제거된 크기도 표시됩니다.

maxscale 5976 maxscale 4w REG 253,1 12506246848 82752 /var/log/maxscale/maxscale.log (삭제됨)

공간을 확보하기 위해 데몬을 중지하여 파일 설명자를 해제/닫습니다.

$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/vg_os-lv_root   18G  4.0G   14G  23% /
devtmpfs                   3.9G     0  3.9G   0% /dev
tmpfs                      3.9G   39M  3.8G   1% /dev/shm
tmpfs                      3.9G   17M  3.9G   1% /run
tmpfs                      3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/vda1                  497M  215M  283M  44% /boot
tmpfs                      783M     0  783M   0% /run/user/937000511
tmpfs                      783M     0  783M   0% /run/user/937000593

이제 우리 dfdu같은 페이지에 있습니다.

관련 정보