GNU/Linux >> Belajar Linux >  >> Linux

menghapus file tetapi ruang disk masih penuh

Dua hal mungkin terjadi di sini.

Pertama , sistem file Anda telah memesan beberapa ruang yang hanya root dapat menulis ke, sehingga proses sistem kritis tidak jatuh saat pengguna normal kehabisan ruang disk. Itu sebabnya Anda melihat 124G dari 130G digunakan, tetapi tidak ada yang tersedia. Mungkin file yang Anda hapus menurunkan penggunaan hingga titik ini, tetapi tidak di bawah ambang batas untuk pengguna normal.

Jika ini situasi Anda dan Anda putus asa, Anda mungkin dapat mengubah jumlah ruang yang dicadangkan untuk root . Untuk menguranginya menjadi 1% (standarnya adalah 5%), perintah Anda adalah

# tune2fs -m 1 /dev/sda3

Kedua , sistem operasi tidak akan melepaskan ruang disk untuk file terhapus yang masih terbuka. Jika Anda telah menghapus (katakanlah) salah satu file log Apache, Anda harus memulai ulang Apache untuk mengosongkan ruang.


Jika Anda menghapus file yang sedang digunakan oleh suatu proses, Anda tidak dapat lagi melihat file tersebut dengan ls . Proses masih menulis ke file tersebut hingga Anda menghentikan proses.

Untuk melihat file yang dihapus tersebut, cukup jalankan lsof|grep delete


2 cara lain untuk mendapatkan disk penuh masalah:

1) tersembunyi di bawah titik pemasangan: linux akan menampilkan disk lengkap dengan file "tersembunyi" di bawah titik pemasangan. Jika Anda memiliki data yang ditulis ke drive dan memasang sistem file lain di atasnya, linux dengan benar mencatat penggunaan disk meskipun Anda tidak dapat melihat file di bawah titik pemasangan. Jika Anda memiliki mount nfs, coba umount dan lihat apakah ada yang tidak sengaja ditulis di direktori tersebut sebelum mount.

2) file rusak: Saya melihat ini sesekali di transfer file windows ke linux melalui SMB. Satu file gagal menutup deskriptor file dan Anda berakhir dengan file sampah 4GB.

Ini bisa lebih membosankan untuk diperbaiki, karena Anda perlu menemukan subdirektori tempat file itu berada, tetapi mudah diperbaiki karena file itu sendiri mudah dilepas. Saya menggunakan du perintah dan lakukan daftar subdirektori root untuk mencari tahu di mana ruang file digunakan.

cd /
du -sh ./* 

Jumlah direktori tingkat atas biasanya terbatas, jadi saya menyetel dapat dibaca manusia bendera -h untuk melihat subdirektori mana yang merupakan space hog.

Kemudian Anda cd ke anak bermasalah dan ulangi proses untuk semua item di dalamnya. Untuk memudahkan menemukan item besar, kami mengubah du sedikit dan memasangkannya dengan pengurutan.

cd /<suspiciously large dir>
du -s ./* | sort -n

yang menghasilkan output terkecil hingga terbesar menurut ukuran byte untuk semua file dan direktori

4          ./bin 
462220     ./Documents
578899     ./Downloads
5788998769 ./Grocery List

Setelah Anda melihat file yang terlalu besar, Anda biasanya dapat menghapusnya.


Linux
  1. Bagaimana cara menghapus ruang disk kosong di Linux?

  2. Tidak dapat meng-unmount file yang didukung loop tetapi tidak ada file yang terbuka?

  3. Menemukan file yang menggunakan sebagian besar ruang disk

  1. 7 tips baris perintah Linux untuk menghemat ruang file media

  2. Bandingkan Direktori Tapi Bukan Isi File?

  3. Apakah file disimpan di disk secara berurutan?

  1. Ukur ruang disk dari jenis file tertentu secara agregat

  2. Amazon EC2 - disk penuh

  3. Bagaimana cara mengunci file agar tidak dihapus tetapi tetap membuatnya dapat ditulisi?