Bu, Linux altında işləyən serverdə diskdə boş yer bitəndə işə yarayan kiçik komandalar toplusudur.
Ümumiyyətlə diskdə nə qədər yer tutulduğuna baxırıq:
Əgər hansısa mount point 100% doludursa, tez bir zamanda hansı direktoriyaların yer tutduğunu görə bilərsiniz. Bunun üçün bir neçə variant var:
Output məhdudlaşdırmaq üçün:
Ən həcimli 20 direktoriyaya baxmaq üçün:
Ən həcimli 20 fayla baxmaq üçün:
Inode-ları da yoxlayın. Bəzən yer məhz inode-lar bitdiyinə görə tükənir:
Əgər du göstərir ki, yer yoxdur, amma bütün direktoriyaların cəmi real istifadə olunan yerdən azdırsa deməli silinmiş, amma hansısa proses tərəfindən hələ də açıq saxlanılan fayllar var. Onları lsof ilə görmək olar:
Əgər böyük fayllar görsəniz, onları hansı servis saxlayır, ona baxın və həmin servisi restart edin. Adətən bu kömək edir. Əgər servis donubsa onu kill -9 ilə məcburi dayandırmaq olar.
Daha bir vacib məqam. Elə ola bilər ki, du göstərir ki, yer doludur, amma fayl sistemində nə ilə dolduğunu tapa bilmirsiniz: fayl və direktoriyaların cəmi tutulan yerdən azdır, silinmiş fayllar da yoxdur. Bu halda mount point-lərinizi yoxlayın.
Məsələn, skriptlə /mnt/backup-a diski mount edilir və backup-lar ora yazılır. Sonra disk ayrılır. Əgər backup zamanı disk mount olunmayıbsa, amma məlumatlar ora yazılıbsa onlar əslində root fayl sisteminə düşəcək (amma yenə də /mnt/backup qovluğuna). Sonra disk yenidən mount ediləndə həmin fayllar görünməyəcək, amma yer tutmağa davam edəcək. Bu vəziyyət nadir kimi görünür, amma real həyatda baş verir.
bash
df -hbash
du -h -d 1 / | sort -hr
du -hs /* | sort -hrbash
du -h -d 1 / | sort -hr | head -10
bash
du -hcx --max-depth=6 / | sort -rh | head -n 20
bash
find / -mount -ignore_readdir_race -type f -exec du -h "{}" + 2>&1 \
| sort -rh | head -n 20
bash
df -ih
bash
lsof | grep '(deleted)'
lsof +L1