root@database:/# treesize -x 2>/dev/null
1.1 GB .
757.1 MB ./usr
232.0 MB ./lib
97.2 MB ./var
29.0 MB ./boot
6.3 MB ./sbin
5.5 MB ./etc
5.4 MB ./bin
80.0 KB ./home
68.0 KB ./root
32.0 KB ./tmp
16.0 KB ./lost+found
12.0 KB ./mnt
12.0 KB ./media
4.0 KB ./srv
4.0 KB ./selinux
4.0 KB ./opt
0.0 KB ./sys
0.0 KB ./proc
0.0 KB ./dev
root@database:/# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9,2G 9,0G 0 100% /
root@database:~$ df -i /
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 610800 57516 553284 10% /
root@database:/# du -sh /* 2>/dev/null
5,4M /bin
29M /boot
0 /cdrom
144K /dev
5,5M /etc
84K /home
0 /initrd.img
0 /initrd.img.old
232M /lib
0 /lib64
16K /lost+found
12K /media
12K /mnt
69G /opt
0 /proc
104K /root
6,4M /sbin
4,0K /selinux
4,0K /srv
0 /sys
32K /tmp
758M /usr
98M /var
0 /vmlinuz
0 /vmlinuz.old
나무 크기 내용
#/bin/sh
du -k --max-depth=1 "$@" | sort -nr | awk '
BEGIN {
split("KB,MB,GB,TB", Units, ",");
}
{
u = 1;
while ($1 >= 1024) {
$1 = $1 / 1024;
u += 1
}
$1 = sprintf("%.1f %s", $1, Units[u]);
print $0;
}
'
Ubuntu 9에서 10 LTS로 업그레이드한 지 며칠 후에 갑자기 이러한 현상이 발생했습니다.
공간을 차지하는 단일 파일을 찾을 수 없는데 왜 공간이 부족합니까? 나는 gparted live의 fsck를 시도했습니다. 또한 단일 사용자 모드로 부팅하고 lsof 출력 복사본을 저장했습니다. 그러나 컴퓨터가 여러 번 다시 시작되었기 때문에 이는 열린 파일 때문인 것으로 의심됩니다.
/opt에 mysqld가 있고 /var/log에 일부 error.log가 열립니다. vmware 도구, cron, syslog, mysql, atd, nrpe, snmpd 등 가능한 모든 것을 끄고 트리 크기를 다시 확인했지만 거기에 있습니다. 출력에는 차이가 없습니다.
편집: 이것이 대답할 수 있는 또 다른 질문인 것처럼 보이기 때문에 승인률이 더 낮아져야 할 것 같습니다.
내 솔루션은 새 VM을 설치하고 새 VM에 이전 VMDK를 설치한 다음 이전 VMDK에서 /opt를 설치하는 것이었습니다. 흥미롭게도 이전 /를 /mnt/root에 마운트했을 때 FS가 여전히 꽉 차 있다는 사실을 발견했습니다.
# df -h /mnt/root
Filsystem Storlek Anvnt Tillg Anv% Monterat på
/dev/sdb1 9,2G 9,2G 0 100% /mnt/root
답변1
재부팅 후에도 과도한 사용률이 지속됩니까? 더 이상 존재하지 않는 파일에 열린 파일 설명자가 기록되었을 가능성이 있습니까? 나는 이로 인해 파일 시스템이 100%라고 생각하지만 실제로는 그렇지 않은 것을 보았습니다. 이 경우 다시 시작하면 문제가 해결됩니다.
treesize
또한 귀하의 스크립트가 기본적으로 숨겨진(.) 파일을 고려하는 것을 볼 수 없습니다 .
다음과 같은 명령을 시도해 보세요
find . -x -type f -exec du -k {} \; | awk -F' ' '{sum+=$1} {print $1"\t"$2} END{print "--------\n"sum"\tTotal K-Bytes"}'
이렇게 하면 스크립트에 대해 유사한 출력이 제공되지만 하단에는 파일 시스템에 대해 df가 말하는 내용과 비교하는 데 사용할 수 있는 전체 행이 포함됩니다.