Po uruchomieniu df
pokazuje, że urządzenie root jest pełne.
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.9G 9.4G 0 100% /
Spojrzałem na inode
użycie i jest dość miejsca na urządzenie root
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 640K 103K 538K 16% /
Ale po uruchomieniu du
polecenia pokazuje, że użyłem tylko 2G
z 9.9G
.
ip-XXX-XXX-XXX-XXX:/$ du -xh --max-depth=1
14M ./etc
4.0K ./mnt
96K ./tmp
3.5M ./bin
0 ./sys
964K ./boot
4.0K ./srv
0 ./dev
55M ./lib
25M ./root
1.1G ./usr
4.0K ./opt
846M ./var
4.3M ./sbin
23M ./home
16K ./lost+found
0 ./proc
2.0G .
To tylko doprowadza mnie do szaleństwa i jest interesujące. Jest to dla nas duży problem, ponieważ dysk główny /
jest pełny, a niektóre funkcje w naszej witrynie zawodzą.
Pomóż mi rozwiązać (również zrozumieć) ten problem.
Dzięki.
linux
debian
filesystems
disk-space
Rakesh Sankar
źródło
źródło
+df +du
pytania na Unix i Linux .du -x /
i widzę, że użyto tylko 2G i obliczyłem, jaki jest rozmiar i-węzła160M
. Pomogło mi to zrozumieć, ale chcę tylko rozwiązać ten problem.du
jako root? W przeciwnym razie może zgłaszać tylko pliki, do których masz dostęp.root
ncdu
programem, który pomaga wizualizować wykorzystanie dysku.Odpowiedzi:
Po usunięciu plików w * nix, pozostają one na dysku (i zajmują miejsce na dysku) tak długo, jak długo proces je otwiera. Dość często korzysta się z tego, aby „zabezpieczyć” pliki tymczasowe, tworząc je o małym rozmiarze, usuwając je, a następnie używając usuniętego pliku do przechowywania danych bez martwienia się o to, że inne procesy (łatwo) uzyskają do niego dostęp, więc ilość miejsca w usuniętych plikach może wzrosnąć, jeśli, powiedzmy, tymczasowa baza danych lub sesja edycji multimediów jest obsługiwana w ten sposób. Inną możliwością, w jaki sposób można mieć tak dużo „utraconej” przestrzeni, byłoby, gdyby system został zaktualizowany (wiele razy) bez ponownego uruchamiania lub ponownego uruchamiania programów, w wyniku czego wszystkie twoje stare biblioteki .so byłyby otwarte przez programy, które zostały uruchomione przed zaktualizuj i nadal działają.
df
widzi przestrzeń używaną przez te pliki, ponieważ po prostu sprawdza, ile miejsca jest przydzielone na urządzeniu, aledu
nie widzi ich, ponieważ nie ma żadnych odpowiednich pozycji katalogu.Takie „ukryte” zajęte miejsce można zwolnić tylko wtedy, gdy procesy, które usunęły pliki, je zamkną. Możesz znaleźć te procesy za pomocą
fuser
polecenia i zakończyć je (lub, dla wielu demonów, wysłać sygnał nakazujący im zamknięcie i ponowne otwarcie wszystkich otwartych plików).źródło
hidden
używane miejsce, próbuję uruchomićfuser
polecenie, aby zobaczyć wszystkie pliki, które są używane przez proces, ale nie są połączone - nie mogłem znaleźć żadnego. Czy masz jakieś polecenie lub kierunek, który prowadzi mnie do znalezienia go? To polecenie, którego używamfuser -v -a /
Były chwile, gdy dysk się zapełni, można go pomylić do momentu ponownego uruchomienia / ponownego zamontowania dysku, który jest nadal pełny, nawet po usunięciu obciążenia plików.
źródło
Z mojej strony po prostu zrestartowałem syslogd, aby odzyskać miejsce na dysku. Brakowało mi 3 GB! Mój serwer był uruchomiony przez 250 dni.
źródło
Istnieje sposób na oczyszczenie miejsca bez ponownego uruchamiania aplikacji. Oto szczegóły:
Załóżmy, że masz
foo
uruchomiony proces i tworzysz plik 2 GB o nazwie abc.log. Teraz powiedz, że ten abc.log został usunięty przez kogoś innego.Uzyskaj
foo
pid (powiedzmy 123). Pokaże więc/proc/123/fd
listę deskryptorów plików otwartych przezfoo
. Jeden z abc.log pokaże się jako usunięty. Załóżmy, żefd
abs.log ma wartość 111. Jeśli uruchomiszless /proc/123/fd/111
, nadal będzie wyświetlać wszystkie 2 GB danych.Uruchom
echo " " > /proc/123/fd/111
. Spowoduje to zastąpienie zawartości pustym ciągiem. Po tym poleceniu, jeśli spróbujeszdf
, pokaże dodatkowe 2 GB odzyskane przez czyszczenie abc.log.Otóż to. Próbowałem tego na CentOS i działa.
źródło