Bagaimana cara menentukan bagaimana partisi saya penuh bahkan ketika itu tampak tidak?

3

Saya telah menjalankan "df -kh" pada kotak FreeBSD saya dan saya melihat bahwa / var hampir 100% penuh. Itu sudah berakhir tetapi saya telah memangkas apa yang saya bisa tetapi ada kurang dari 500MB total pada partisi sesuai dengan menjalankan "du -ksh *" saat di / var. Partisi / var sendiri adalah 6.8G dan sekarang dikatakan hanya memiliki 18M gratis. Itu tidak bertambah.

Saya menjalankan perintah berikut ini saya tidak menemukan penyebab.

 find . -type f -size +2000 -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

Saya bahkan menelusuri folder demi folder menggunakan "du -ksh *" untuk mengidentifikasi folder dengan banyak penggunaan disk tetapi saya tidak dapat menemukan bagaimana semuanya bertambah. Saya ingin mengompres, menghapus atau memindahkan file untuk membebaskan lebih banyak ruang karena partisi lain memiliki ruang, tetapi antara df dan du saya sepertinya tidak dapat menemukan apa yang menggunakan semua ruang disk.

Apa lagi yang harus saya lakukan untuk menemukan file dan folder mengambil semua ruang?

Brennan Stehling
sumber
Apa sistem file / var? Mereka tidak semua segera menghapus ruang file hapus. Selain itu, semua file akan dibulatkan ke ukuran blok terdekat sehingga lstidak akan melaporkan ruang disk yang digunakan - untuk banyak file kecil ini dapat bertambah. Apakah Anda memiliki kapasitas cadangan untuk hanya membuat yang lebih besar / var?
Paul
du masih harus menunjukkan jumlah penggunaan disk secara akurat bahkan jika ls tidak pada folder individual. Jika saya bisa mengidentifikasi di mana penggunaan disk sangat berat saya bisa memperbaikinya.
Brennan Stehling
Tentu - asalkan blok Anda 1K du harus bekerja dengan parameter tersebut. Mungkinkah ada .*file di root / var?
Paul

Jawaban:

1

Saya akan menjalankan yang berikut ini, sehingga Anda memiliki snapshot yang bagus dari semua file untuk dikerjakan:

du -kx /var | sort -n | tee /var/tmp/du_results.out

... dan kemudian lihat beberapa ratus baris terakhir.

Ini akan menangkap ukuran semua direktori (untuk menangkap sejumlah besar file kecil), serta menangkap file besar biasa. Perhatikan bahwa saya tidak menggunakan -h(dapat dibaca manusia), sehingga hasilnya mudah diurutkan secara numerik. Perhatikan juga bahwa saya tidak menggunakan /var/*, yang akan mengambil apa pun yang dipasang /varjuga.

Kemungkinan penyebab meliputi, dalam urutan kasar kemungkinan:

  • Basi file yang tidak ditautkan. Coba apa yang tidak disarankan oleh simon ( lsof /var). /var/tmpterkadang merupakan tempat yang jelas untuk menemukan ini. Jika Anda belum lsofmenginstal, Anda dapat menggunakan fstat -f /var | sort -k 8 -n, yang tidak menampilkan nama file, tetapi setidaknya akan menampilkan ukuran (terkecil hingga terbesar), inode, dan proses mana yang membuka file.

  • Sistem file korupsi. Jalankan fsckdari mode pengguna tunggal untuk memeriksa /var.

  • File lama disembunyikan di bawah titik mount. Jika ada mount di bawah /var, unmount mereka dan kemudian jalankan pencarian / diagnostik Anda lagi. Cara paling aman untuk melakukan ini mungkin dengan boot dalam mode single-user, dan hanya melakukan mount /vartanpa memasang apa pun di bawahnya.

Perbedaan dalam pelaporan ukuran file dapat disebabkan oleh keberadaan file yang jarang atau terkompresi. Anda dapat menggunakan -Aopsi untuk dubekerja dengan ukuran file yang tampak alih-alih penggunaan disk, yang mungkin menjelaskan beberapa perbedaan. Masukkan dan tinggalkan, dan bandingkan hasilnya. Di /varpartisi 3.6Gb saya , hasil dengan -Asekitar 100Mb lebih kecil.

Royce Williams
sumber
3

Sudahkah Anda mempertimbangkan bahwa Anda mungkin memiliki file yang tidak ditautkan yang masih terbuka? Coba lihat output lsof /varuntuk melihat apakah ada file besar yang luar biasa terdaftar.

bukan simon
sumber
0

Saya memiliki masalah serupa di mana disk pergi. Mount point masih ada, tetapi karena beberapa alasan file sedang ditulis ke direktori pada partisi yang berisi mount point . Ini mungkin tidak berlaku untuk sistem operasi Anda, tetapi mem-boot sistem penyelamatan dan membaca partisi dari sana dapat mengungkapkan lebih banyak.

bukan simon
sumber