Mengatasi Error “No space left on device” di Linux

Pernah mengalami error No space left on device di server Linux Anda, lalu saat dicek menggunakan perintah df -h ternyata ruang disk masih tersedia banyak? Anda tidak sendiri. Masalah ini seringkali membingungkan, namun solusinya sebenarnya cukup teknis dan spesifik.

Penyebabnya bukanlah ruang disk yang habis, melainkan Inode yang sudah penuh.

Artikel ini akan memandu Anda cara mendiagnosis dan menyelesaikan masalah inode penuh secara cepat dan efektif.

Gejala Aneh: Disk Terlihat Kosong Tapi Error Muncul

Saat Anda atau aplikasi mencoba membuat file baru, muncul pesan error: touch: cannot create 'file.txt': No space left on device

diskon vps

Namun, perintah df -h menunjukkan hasil yang kontradiktif:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   28G   20G  59% /

Output ini jelas menunjukkan disk masih memiliki sisa 20GB. Jadi, apa masalahnya?

Apa itu Inode dan Mengapa Bisa Penuh?

Secara sederhana, Inode adalah “buku catatan” filesystem yang mencatat metadata untuk setiap file dan direktori. Setiap kali Anda membuat file baru (sekecil apapun), Anda menggunakan satu Inode.

Sebuah partisi memiliki jumlah Inode yang terbatas. Jika Anda memiliki jutaan file yang sangat kecil (seperti file cache atau session), Anda bisa kehabisan Inode jauh sebelum kehabisan ruang disk (GB).

Langkah Diagnosis dan Solusi

Ikuti langkah-langkah ini untuk memecahkan masalah.

Verifikasi Penggunaan Inode

Gunakan perintah df -i untuk melihat status penggunaan inode.

$ df -i
Filesystem        Inodes   IUsed    IFree IUse% Mounted on
/dev/sda1      3276800 3276800        0  100% /

Jika Anda melihat IUse% sudah 100%, maka Anda telah menemukan akar masalahnya: inode penuh.

Temukan Direktori “Pelahap” Inode

Sekarang kita perlu mencari tahu direktori mana yang berisi file dalam jumlah masif. Jalankan perintah one-liner berikut:

find / -xdev -printf '%h\n' | sort | uniq -c | sort -rn | head -10

Perintah ini akan memindai, menghitung, dan mengurutkan direktori berdasarkan jumlah file terbanyak. Outputnya akan terlihat seperti ini:

2987152 /var/www/html/cache/sessions
  54321 /var/log/nginx
...

Dari contoh di atas, jelas bahwa direktori /var/www/html/cache/sessions adalah biang keladinya.

Solusi Cepat (Menghapus File Lama)

Jangan gunakan rm * karena bisa gagal jika file terlalu banyak. Gunakan perintah find untuk menghapus file yang lebih tua dari 7 hari dengan aman.

# Ganti path direktori sesuai hasil temuan Anda
find /var/www/html/cache/sessions/ -type f -mtime +7 -delete

Setelah proses ini selesai, inode akan kembali tersedia dan server akan berfungsi normal.

Solusi Permanen (Pencegahan)

  • Perbaiki Aplikasi: Minta tim developer untuk memperbaiki mekanisme pembersihan file cache/session pada aplikasi.
  • Buat Cron Job: Sebagai jaring pengaman, buat tugas terjadwal (cron job) untuk membersihkan direktori tersebut secara rutin.

Contoh cron job yang berjalan setiap jam 3 pagi:

0 3 * * * /usr/bin/find /path/ke/direktori/ -type f -mtime +7 -delete

Kesimpulan

Error No space left on device tidak selalu berarti disk Anda penuh. Lain kali Anda menghadapi masalah ini, ingatlah untuk memeriksa penggunaan inode dengan df -i. Dengan memahami konsep ini, Anda dapat menghemat waktu troubleshooting dan menjaga server tetap berjalan optimal.

diskon vps
Previous Article

Tips Mengamankan Domain Kamu Supaya Tidak di Ambil Alih Orang Lain

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *

(self.SWG_BASIC = self.SWG_BASIC || []).push( basicSubscriptions => { basicSubscriptions.init({ type: "NewsArticle", isPartOfType: ["Product"], isPartOfProductId: "CAow0Ja9DA:openaccess", clientOptions: { theme: "light", lang: "id" }, }); });