Mengapa df dan du menunjukkan keluaran yang berbeda?

8

Ketika saya menjalankan perintah df -h /tmpitu mengatakan pemanfaatan disk adalah 100% , tetapi ketika mencobanya du -sh /tmpdikatakan penggunaan disk adalah 2% .

Saya ingin tahu mengapa perintah ini menunjukkan keluaran yang berbeda, bagaimana kedua perintah ini bekerja dan apa solusi untuk masalah ini.

Konteks: /tmp diinstal pada sistem file sendiri. Saya menggunakan edisi server Ubuntu 12.04 pada akun VPS saya. Karena masalah ini pemanfaatan /tmp100% menurut dfbeberapa program mengeluh tentang ruang kosong di /tmp.

Nischay
sumber

Jawaban:

10

du melaporkan ruang kosong dengan memindai inode yang dapat dijangkau dan menghitung ukurannya.

Jika file dibuat, dibuka, dan kemudian dihapus ketika masih terbuka, program yang membuka itu akan terus memiliki akses ke file, dan menulis serta membaca dapat dilakukan ke lokasi memori pada disk. dutidak memperhitungkan file terbuka seperti itu sedangkan dftidak.

Restart sederhana seharusnya flush / tmp dan menyelesaikan masalah Anda.

Alternatifnya adalah memindai file yang terbuka dan memulai kembali atau membunuh proses yang tidak merilis file yang dihapus.

Mahesh
sumber
1

Beberapa file pada sistem file root dapat disembunyikan di belakang titik mount. File dapat dibuat di bawah titik pemasangan ketika perangkat yang sesuai tidak dipasang, dan ketika perangkat dipasang kembali, file tidak dihitung oleh perintah du. Masalah yang sangat mungkin terjadi, ketika ada perbedaan besar antara hasil du dan df.

Nick
sumber
Bingo. Inilah penyebabnya bagi saya.
jdhildeb
-1

Pastikan Anda sudosaat berlari du. Misalnya, jika Anda menjalankan du -hs /*, Anda tidak akan melihat penggunaan disk nyata kecuali Anda menambahkan sudo.

raimohanska
sumber