GNU/Linux >> Belajar Linux >  >> Linux

Sistem file Linux sedang terisi, meskipun tidak ada file atau direktori besar

Masalahnya

Pada sistem berbasis Linux, sistem file root diisi oleh beberapa proses yang tidak diketahui. Itu terus berlanjut terlepas dari file apa yang dipindahkan atau dibersihkan dari sistem file.

# df -hP /
/dev/mapper/VGExaDb-LVDbSys1    ext3     30G   29G     0 100%    /

Tidak ada file besar untuk memperhitungkan sistem file lengkap:

# find / -xdev -type f -size +100M -exec ls -lh {} \;

Tidak ada direktori besar untuk menjelaskan sistem file lengkap:

# du -h --max-depth=1 /
42M     /sbin
13M     /etc
2.4G    /usr
45M    /tmp
451M   /var
192M   /lib
(and so on)
...

Solusinya

Pada satu titik di masa lalu, dua atau lebih proses menggunakan file; misalnya,/tmp/top.log. Satu proses menghentikan aksesnya ke /tmp/top.log dengan menghapusnya (sebenarnya itu adalah entri direktori) dan proses lainnya terus menulis ke referensi inode, memungkinkan file untuk terus berkembang.

Hal ini dapat dilihat pada output dari:“lsof +L 1

# lsof +L 1
COMMAND    PID      USER   FD     TYPE   DEVICE     SIZE/OFF      NLINK          NODE       NAME
top        34261    root   1W     REG   252,0       21460567592   0              1785896    /tmp/top.log (deleted)

File lain juga terdaftar tetapi jauh lebih kecil.

Ini menunjukkan bahwa user=root menjalankan perintah teratas yang di-spooling ke /tmp/top.log, dan saat ini tidak ada tautan ke file itu. File spool itu berukuran 21 Gb tetapi tidak melaporkan dalam output “du –h –max-depth=1 /”, di mana /tmp terdaftar sebagai hanya 45M.

Ikuti langkah-langkah di bawah ini untuk mengidentifikasi dan menghentikan proses tersebut.

1. Identifikasi file pada sistem yang memiliki link kurang dari 1 dengan perintah:

# lsof +L 1

2. Matikan semua proses yang menulis ke file besar yang terdaftar. Pada contoh di atas, Anda akan menjalankan:

# kill 34261

3. Ruang akan dibebaskan saat proses akhir berhenti menggunakan file.


Linux
  1. Temukan file dan direktori di Linux dengan perintah find

  2. Memindahkan file di Linux tanpa mv

  3. Diff/patch biner untuk file besar di linux?

  1. Cara Mudah Menyembunyikan File dan Direktori di Linux

  2. Cara Menemukan File Di Linux Di Semua Direktori Secara Rekursif

  3. Temukan Semua File Python Di Sistem File Linux?

  1. Cara menemukan file format dos di sistem file linux

  2. Mengapa saya tidak bisa membuat file lebih besar dari 2 GB di Linux?

  3. Sistem file rock-stable untuk file besar (cadangan) untuk linux