disk penuh, tetapi tidak dapat menemukan file atau folder besar

20

Server Ubuntu menunjukkan kepada saya bahwa saya menggunakan allmost all disk:

Usage of /:   95.5% of 118.12GB

Dan saya mencoba mencari folder dan file besar, jalankan ncdu:

ncdu 1.8 ~ Use the arrow keys to navigate, press ? for help                                                                                                                                                 
--- / ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    5.5GiB [##########] /root                                                                                                                                                                               
    2.3GiB [####      ] /var
  628.6MiB [#         ] /usr
  209.9MiB [          ] /lib
   28.2MiB [          ] /boot
    8.6MiB [          ] /bin
    7.7MiB [          ] /sbin
    6.6MiB [          ] /etc
  208.0KiB [          ] /run
  112.0KiB [          ] /tmp
   48.0KiB [          ] /opt
e  16.0KiB [          ] /lost+found
    8.0KiB [          ] /dev
    8.0KiB [          ] /media
    4.0KiB [          ] /lib64
e   4.0KiB [          ] /srv
e   4.0KiB [          ] /selinux
e   4.0KiB [          ] /mnt
e   4.0KiB [          ] /home
    0.0  B [          ] /proc
    0.0  B [          ] /sys
@   0.0  B [          ]  initrd.img
@   0.0  B [          ]  vmlinuz

Menurut ncdusaya menggunakan sekitar 10 GiBdari 128 GiB- ini adalah tentang 10 %. Kontradiksi.

Bagaimana cara membersihkan saya ubutntu servertanpa me-reboot?

Saya pikir itu ncdubohong dan menggunakan aplikasi lain untuk menemukan file dan folder besar. Semuanya menunjukkan hasil yang sama dengan ncdu.

Dan df -hperintah menunjukkan bahwa disk sudah penuh.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda       119G  113G     0 100% /
udev            2.0G  8.0K  2.0G   1% /dev
tmpfs           788M  212K  788M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm

Memperbarui

sudo du -sch /* hasil:

/# sudo du -sch /*
8.7M    /bin
29M /boot
8.0K    /dev
6.6M    /etc
4.0K    /home
0   /initrd.img
210M    /lib
4.0K    /lib64
16K /lost+found
8.0K    /media
4.0K    /mnt
48K /opt
du: cannot access `/proc/4470/task/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/task/4470/fdinfo/4': No such file or directory
du: cannot access `/proc/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/fdinfo/4': No such file or directory
0   /proc
5.0G    /root
212K    /run
7.8M    /sbin
4.0K    /selinux
4.0K    /srv
0   /sys
112K    /tmp
629M    /usr
2.3G    /var
0   /vmlinuz
8.1G    total

8.1G total seperti biasa. Tapi saya melihat cannot accessbaris, mungkin masalah karena mereka.

Lalu saya memeriksa folder terbesar di /. Itu adalah /root:

/# sudo du -sch /root/*
96K /root/Downloads
2.5G    /root/Dropbox
36K /root/nohup.out
4.0K    /root/npm-debug.log
4.0K    /root/readonly
980K    /root/redis-2.6.16.tar.gz
228M    /root/tmp
2.7G    total
Maxim Yefremov
sumber
Hanya sebuah pemikiran, mungkin memeriksa isi / var / log / untuk melihat apakah ada log yang tumbuh secara ekspotensial.
Mordoc
/ var / log sekitar 2 GiB. Tidak apa
Maxim Yefremov
1
Cobalah du -sch /*untuk melihat direktori root mana yang menggunakan ruang terbanyak, dan turun dari sana ke tempat-tempat menggunakan ruang terbanyak.
DopeGhoti
@DopeGhoti Saya mencoba tetapi melihat hal yang sama tentang 8.1 GiBpenuh (menambahkan ini untuk memperbarui). Tidak tahu di mana sisanya100 GiB
Maxim Yefremov
2
Saya tahu Anda tidak mau, tetapi gigit peluru dan reboot.
douggro

Jawaban:

13

Saya mengalami masalah yang sama pada mesin lab kami dan menggunakan perintah ini

du -sch .[!.]* * |sort -h

Saya dapat menemukan file tersembunyi seperti di dalam kotak sampah pengguna yang belum mereka hapus.

Terima kasih karena di sini saya menemukan jawaban ini.

Matt G.
sumber
Solusi luar biasa!
AivanF.
5

Periksa file yang dihapus yang masih ditahan terbuka oleh suatu proses:
sudo lsof | grep deleted | less

Itu akan menampilkan pid dan deskriptor file. Saya punya masalah ini pada server, tidak ada yang masuk ncdukecuali mengisi disk. Ternyata itu adalah proses malam yang memindahkan file ke share samba yang dipasang dan kadang-kadang tidak menutup file handle dengan benar, tampaknya.

Jika Anda menemukan file yang dihapus dan ingin membersihkannya, reboot mungkin paling mudah jika itu dapat diterima. Atau Anda dapat mencoba mematikan prosesnya. Atau jika Anda yakin mereka tidak digunakan, Anda dapat secara manual membidiknya, dengan sesuatu seperti ini:
> /proc/14487/fd/12

Alric
sumber
Ini masalah saya. Tomcat memegang file yang dihapus 80GB. Restart sudah cukup untuk memperbaikinya.
AFP_555
Bagaimana saya bisa menghapusnya jika perintah "reboot" itu tidak cukup?
kilauan
4

Perintah berikut akan menampilkan pemanfaatan disk untuk / direktori home dengan --max-depth = 1

user@linux:~$ sudo du -h -d 1 /
Kamchybek Jusupov
sumber
2

Pastikan untuk memeriksa tunggangan disk Anda. Tak satu pun dari solusi yang saya lihat di sini dapat mengidentifikasi ruang yang diambil oleh folder yang memiliki mount ditempatkan di atasnya.

Remer Kaya
sumber
ada saran? saya pikir ini mungkin masalah saya
Eliethesaiyan
Pada dasarnya, periksa tunggangan yang ada dengan mount, lalu tambahkan tunggangan kedua untuk setiap direktori yang tunggangan ditempatkan di atasnya. Kemudian Anda dapat menggunakan alat disk biasa seperti dupada mount yang baru dibuat untuk melihat apakah itu penyebabnya.
Rich Remer
1

Kami memiliki masalah yang sama dan ternyata ini adalah gambar buruh pelabuhan, disimpan di bawah var / lib / docker

ncdu tidak mencantumkan ini karena tidak terlihat oleh pengguna. bahkan menjalankan ncdu di bawah sudo tidak membantu.

Perintah ini membersihkan semua gambar buruh pelabuhan yang ada ...

docker rmi $(docker images -a -q)

Botak
sumber
Masalah yang sama di sini. Bahkan, bahkan docker system prunetidak menemukan segalanya. Perintah ini (yang mendahului pemangkasan sistem buruh pelabuhan) melakukan trik.
jscharf
1
Baru-baru ini kami menemukan bahwa docker system prune -a -fini jauh lebih menyeluruh
Baldy
0

Anda dapat menjalankan perintah berikutnya untuk menemukan 10 file terbesar:

find / -type f -printf '%s %p\n' 2>&1 
     | grep -v 'Permission denied' 
     | sort -nr 
     | head -10
ema
sumber