Pertanyaan Mengapa perintah "df" dan "du" menunjukkan penggunaan disk yang berbeda?


Saya tidak dapat mengakses sistem ubuntu di komputer saya, pesan kesalahan: "sistem sedang berjalan dalam mode grafis rendah"dan saya mencoba beberapa perintah yang saya cari dari internet.

Saya menemukan masalah tampaknya tidak ada ruang disk yang tersedia. Saya menggunakan "df"dan"du"perintah untuk memeriksa, hasilnya adalah sebagai berikut:

du -j --max-depth=1
23G  ./home
3.3G ./usr 
...... 
28G

dan

df -Th 
filesystem   Type   size    used   available   use%    mounted on 
/dev/sda5    ext4   68G     68G    0           100%    /

bagaimana saya membersihkan sistem untuk lebih banyak ruang disk?


20
2018-04-11 15:32


asal


Pertanyaan dalam judul dan di akhir tubuh pertanyaan sangat berbeda. Beberapa jawaban terkait dengan satu pertanyaan, beberapa pertanyaan lainnya. Anda harus mengklarifikasi kebutuhan Anda yang sebenarnya dan mungkin menerima jawaban juga. - Melebius


Jawaban:


Anda kemungkinan besar tahu bahwa Anda dapat menghapus file yang masih digunakan oleh beberapa aplikasi dan untuk aplikasi ini tetap tersedia. Itu karena file descriptor di / proc / filesystem diadakan terbuka.

Jadi jika ada deskriptor terbuka untuk file yang sudah dihapus, ruang yang ditempati oleh mereka dianggap digunakan oleh df (dan df benar), tetapi mereka tidak dapat diperhitungkan oleh du karena tidak ada lagi nama file yang terkait dengan mereka.

Anda dapat menemukan semua file yang tidak tertaut tetapi membuka dengan:

# lsof | grep '(deleted)'

39
2017-12-13 15:45



Ini baru saja menyelamatkan saya. Tidak tahu mengapa piringan saya penuh, tetapi du bilang itu kosong. Pegangan file yang terbuka untuk file 8GB - Cheyne
Bagaimana saya menghapus tautan? - Vikas Hardia
Terkadang Anda perlu menjalankan ini sebagai root untuk melihat file yang dihapus yang dibuka oleh proses dari pengguna lain. - Envek
Akar penyebab ini bagi saya akhirnya menjadi salah satu spesifikasi file log di salah satu dari saya /etc/logrotate.d file. Entri buruk itu hilang rutinitas postrotate, yang menyebabkan proses daemon saya untuk tidak melepaskan file yang diputar / dihapus. - Dale Anderson
bagaimana saya bisa menghapus file-file yang tidak terhubung tetapi terbuka? - zx1986


Bagaimana saya menghapus tautan? - Vikas Hardia 22 Agustus '14 pukul 5:46

Anda harus menemukan proses yang memegang pegangan file. Gunakan perintah Dmitry Alexandrov, di sana Anda melihat proses dan pid. Dalam kasus kami dan file log varnish "tua" adalah pembunuh luar angkasa.

# lsof | grep '(deleted)'
[...]
varnishlo 13978       varnishlog    3w      REG              252,1 318448027646    5926973 /var/log/varnish/varnish.log.1 (deleted)
apache2   16801         www-data    2w      REG              252,1        64550   13110120 /var/log/apache2/error.log.1 (deleted)
[...]
# service varnishlog stop
[or if there is no service script]
# kill -11 13978 (the second number of the lsof command is the pid)
[or may be] 
# kill -9 13978

Jangan lupa untuk memulai layanan atau proses lagi jika itu adalah setan atau layanan lain di komputer Anda. Jika Anda bisa, cukup reboot komputer;)


14
2017-08-13 09:04





Ok, mari kita periksa halaman manual:

df - penggunaan sistem file laporan penggunaan disk

dan

du - memperkirakan penggunaan ruang file

Kedua alat itu dimaksudkan untuk usulan berbeda. Sementara df adalah untuk menunjukkan penggunaan sistem file, du adalah melaporkan penggunaan ruang file. du berfungsi dari file sementara df bekerja di level filesystem, melaporkan apa yang dikatakan kernel itu tersedia. Lanjutkan membaca du manpage mendukung ini:

Ringkaskan penggunaan disk masing-masing MENGAJUKAN, secara rekursif untuk direktori.

ia mengatakan du berfungsi dengan file.

df menampilkan          jumlah ruang disk yang tersedia di berkas sistem berisi setiap file          argumen nama. Jika tidak ada nama file yang diberikan, ruang tersedia untuk semua          sistem file yang saat ini dipasang ditampilkan.

disini mengatakan itu df tidak peduli dengan file tetapi filesystem itu sendiri.


8
2017-12-13 15:29





Cukup berkata:

Kamu berlari du tanpa izin root. Jadi tidak dapat memeriksa ruang yang tersedia di /proc, /mnt, dll, folder.

df menunjukkan total yang digunakan & ruang kosong masing-masing.

Jadi ketika Anda memeriksa sistem file root Linux, ambil file du laporkan sebagai final.


2
2017-12-13 14:22





df

Ringkas ruang disk kosong

Ini menampilkan jumlah ruang disk yang tersedia.

du

Ringkas penggunaan disk.

Ini menampilkan jumlah ruang disk yang digunakan.


0
2018-04-11 15:46



ya, tetapi dalam hasil "df -Th", itu menunjukkan 68G digunakan. hari ini pagi ketika saya mencoba mengakses sistem ubuntu, itu masih memberikan "sistem sedang berjalan dalam mode grafis rendah" pesan, tetapi ketika saya memeriksa penggunaan memori, perintah "df" dan "du" menunjukkan hasil yang masuk akal. Tapi apa masalah dengan "mode grafis rendah"? - user2068965
Melihat Ini. - Mitch♦


tidak banyak yang membingungkan: Ini dia lihat: =

1) du == Penggunaan Disk
  Berapa banyak ruang disk yang digunakan oleh file-file ini?

2) df == Disk Gratis
   Berapa banyak ruang disk kosong yang kita miliki?

Juga untuk sistem berjalan dalam mode grafis rendah 'sini'


0
2018-01-03 05:38





aku melakukannya
sudo du -hxa / | egrep '^[[:digit:]]{1,1}G[[:space:]]*'

Ini benar-benar menjelaskan perbedaan besar 21GB yang saya lihat!
File yang dimaksud adalah / file swap jika 21GB !!


0
2017-08-21 22:13