Server yang tiba-tiba menolak koneksi database atau aplikasi yang gagal menulis berkas sering kali punya satu penyebab yang sama — partisi penuh. Masalahnya, ruang disk jarang habis sekaligus. Biasanya ada direktori tertentu yang diam-diam tumbuh selama berminggu-minggu sampai akhirnya layanan berhenti bekerja. Pada sistem Linux, dua perintah sederhana sudah cukup untuk melacak biang keroknya: df dan du.
Tutorial ini memandu Anda membaca penggunaan disk, menemukan direktori yang paling rakus kapasitas, dan mencegah kejadian serupa terulang. Semua langkah ditujukan untuk server atau mesin virtual milik Anda sendiri — misalnya VPS pribadi atau lab lokal — karena praktik administrasi sistem hanya etis dan legal bila dilakukan pada infrastruktur yang Anda kelola atau yang secara tertulis mengizinkan Anda.
Memahami Perbedaan df dan du
Dua perintah ini sering dipakai bergantian padahal fungsinya berbeda. df (disk free) menampilkan sisa ruang per partisi atau filesystem — menjawab pertanyaan “partisi mana yang hampir penuh?”. Sementara itu du (disk usage) menghitung ukuran direktori dan isinya — menjawab pertanyaan “direktori mana yang paling besar?”. Keduanya saling melengkapi: mulai dari df untuk menemukan partisi bermasalah, lalu gunakan du untuk menyelami isinya.
Jalankan df -h untuk hasil yang mudah dibaca:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 34G 4.0G 90% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
Kolom yang paling penting adalah Use% dan Avail. Angka 90% pada partisi root (/) adalah sinyal peringatan — di atas 90% banyak aplikasi mulai gagal menulis data, dan pada 100% layanan seperti database bisa berhenti total. Opsi -h membuat ukuran tampil dalam satuan manusiawi (G, M) alih-alih blok. Jika partisi Anda menggunakan filesystem seperti ext4, perhatikan juga bahwa sebagian kecil ruang dicadangkan untuk root, jadi kapasitas efektif sedikit lebih kecil dari yang terlihat.
Menemukan Direktori yang Menghabiskan Ruang
Setelah tahu partisi mana yang penuh, saatnya menyelam dengan du. Perintah dasar berikut memindai satu level direktori dari root dan mengurutkannya dari yang terbesar:
$ sudo du -h --max-depth=1 / 2>/dev/null | sort -hr | head -15
Pecahan opsinya: -h untuk format terbaca manusia, --max-depth=1 agar hanya satu level kedalaman yang dihitung, 2>/dev/null untuk menyembunyikan pesan “permission denied”, sort -hr mengurutkan dari terbesar, dan head -15 membatasi hasil. Perintah ini membutuhkan hak akses root agar bisa membaca semua direktori — gunakan hanya pada sistem Anda sendiri.
Hasilnya mungkin menunjukkan /var berukuran 20G. Ulangi perintah yang sama satu level lebih dalam:
$ sudo du -h --max-depth=1 /var | sort -hr | head -10
Dengan pola menyelam bertingkat ini, Anda akan tiba di direktori spesifik yang menjadi sumber masalah — sering kali dalam hitungan dua sampai tiga perintah saja.
Penyebab Umum: Log yang Tidak Dirotasi
Dari pengalaman administrasi server, log yang tidak dirotasi adalah penyebab umum partisi penuh. Log aplikasi, log web server seperti Nginx atau Apache di /var/log/nginx/, dan jurnal systemd dapat tumbuh dari beberapa megabita menjadi puluhan gigabita, terutama pada server yang menangani trafik tinggi atau aplikasi yang sangat verbose.
Periksa ukuran direktori log secara khusus:
$ sudo du -sh /var/log/*
$ sudo du -sh /var/log/*/* | sort -hr | head -10
Opsi -s merangkum total per entri sehingga hasilnya ringkas. Jika menemukan satu berkas log berukuran gigabita, jangan langsung menghapusnya saat layanan masih berjalan — aplikasi yang memegang file handle tidak akan melepaskan ruang disk sampai prosesnya di-restart. Alternatif yang lebih aman adalah mengosongkan isinya tanpa menghapus berkas:
$ sudo truncate -s 0 /var/log/aplikasi/error.log
Selain log, tersangka lain yang layak diperiksa adalah /tmp dan /var/tmp yang menumpuk berkas sementara, /var/cache yang membengkak, serta direktori backup lama yang lupa dipindahkan ke penyimpanan eksternal. Untuk tampilan interaktif yang lebih nyaman, perkakas ncdu (tersedia di hampir semua repositori distro) menyajikan peta ukuran direktori yang bisa dinavigasi dengan tombol panah — sangat membantu saat memburu direktori rakus pada sistem sendiri.
Mencegah Disk Penuh di Masa Depan
Menemukan dan membersihkan hanya setengah dari pekerjaan; setengahnya lagi adalah pencegahan. Kabar baiknya, rotasi log dan pembersihan berkas sementara secara rutin mencegah layanan berhenti karena disk penuh — dan sebagian besar sudah tersedia bawaan di Linux.
Pertama, pastikan logrotate aktif. Hampir semua distro server sudah memasangnya dengan jadwal otomatis lewat cron atau systemd timer. Konfigurasi per aplikasi ada di /etc/logrotate.d/. Contoh sederhana yang merotasi log mingguan, menyimpan empat arsip, dan mengompres arsip lama:
/var/log/aplikasi/*.log {
weekly
rotate 4
compress
missingok
notifempty
}
Kedua, atur jurnal systemd agar tidak tumbuh tak terbatas dengan menambahkan batas di /etc/systemd/journald.conf, misalnya SystemMaxUse=500M. Ketiga, manfaatkan systemd-tmpfiles atau jadwal cron sederhana untuk membersihkan /tmp dari berkas yang lebih tua dari batas hari tertentu.
Keempat, pasang pemantauan proaktif. Skrip kecil yang dijalankan cron bisa mengirim peringatan saat penggunaan melewati ambang:
#!/bin/bash
df -h / | awk 'NR==2 {gsub(/%/,"",$5); if ($5 > 85) print "PERINGATAN: partisi root di " $5 "%"}'
Dengan peringatan dini, Anda punya waktu bertindak sebelum layanan terganggu — jauh lebih baik daripada mendapat laporan dari pengguna bahwa situs tidak bisa diakses.
Referensi dan Langkah Lanjutan
Jika Anda ingin memperdalam penguasaan baris perintah Linux, dokumentasi resmi distro seperti Debian atau Ubuntu adalah titik awal yang solid. Situs-situs belajar berbahasa Indonesia seperti kalilinux.net dan kalilinux.info juga menyediakan artikel seputar administrasi dan keamanan Linux yang bisa dijadikan referensi lanjutan — tentu dengan tetap menerapkan semuanya pada sistem yang sah Anda kelola.
Kombinasi df untuk memetakan partisi, du untuk memburu direktori rakus, dan pencegahan lewat rotasi log adalah fondasi administrasi disk yang memadai untuk kebanyakan server. Latih alur ini di mesin virtual pribadi sampai menjadi refleks — saat insiden nyata terjadi, Anda akan menyelesaikannya dalam hitungan menit, bukan jam.
