Řešení 1:
Právě jsem narazil na tuto stránku, když jsem se snažil vystopovat problém na místním serveru.
V mém případě df -h
a du -sh
neodpovídá přibližně o 50 % velikosti pevného disku.
To bylo způsobeno tím, že apache (httpd) uchovával v paměti velké soubory protokolu, které byly smazány z disku.
Toto bylo sledováno spuštěním lsof | grep "/var" | grep deleted
kde /var
byl oddíl, který jsem potřeboval vyčistit.
Výstup ukázal řádky jako tento:
httpd 32617 nobody 106w REG 9,4 1835222944 688166 /var/log/apache/awstats_log (deleted)
Situace byla poté vyřešena restartováním apache (service httpd restart
) a uvolnili 2 GB místa na disku tím, že umožnili vymazání zámků smazaných souborů.
Řešení 2:
Zkontrolujte soubory umístěné pod přípojnými body. Pokud připojíte adresář (řekněme sambafs) do souborového systému, který již obsahoval soubor nebo adresáře, ztratíte možnost tyto soubory vidět, ale stále zabírají místo na základním disku. V režimu jednoho uživatele jsem měl kopie souborů, když jsem ukládal soubory do adresářů, které jsem nemohl vidět kromě režimu jednoho uživatele (kvůli jiným adresářovým systémům, které byly připojeny na ně).
Řešení 3:
Souhlasím s odpovědí OldTrolla jako s nejpravděpodobnější příčinou vašeho „chybějícího“ prostoru.
Na Linuxu můžete snadno znovu připojit celý kořenový oddíl (nebo jakýkoli jiný oddíl v tomto případě) na jiné místo ve vašem souborovém systému, řekněme například /mnt, stačí zadat
mount -o bind / /mnt
pak můžete udělat
du -h /mnt
a uvidíte, co zabírá váš prostor.
Ps:omlouvám se za přidání nové odpovědi a ne komentáře, ale potřeboval jsem nějaké formátování, aby byl tento příspěvek čitelný.
Řešení 4:
Podívejte se, co df -i
říká. Může se stát, že vám došly inody, což se může stát, pokud je v daném souborovém systému velké množství malých souborů, které využívají všechny dostupné inody, aniž by zabíraly veškerý dostupný prostor.
Řešení 5:
V mém případě to mělo co do činění s velkými smazanými soubory. Bylo to docela bolestivé vyřešit, než jsem našel tuto stránku, což mě navedlo na správnou cestu.
Nakonec jsem problém vyřešil pomocí lsof | grep deleted
, který mi ukázal, který program uchovává dva velmi velké soubory protokolu (celkem 5 GB z mého dostupného 8GB kořenového oddílu).