Pernahkah Anda mendapati situs WordPress Anda mendadak menampilkan pesan “Error Establishing a Database Connection”, dan saat dicek melalui SSH, ternyata penggunaan disk VPS Anda sudah mencapai 100%?
Masalah penyimpanan VPS yang tiba-tiba penuh secara tidak wajar adalah makanan sehari-hari bagi pengguna stack LAMP (Linux, Apache, MySQL, PHP). Sering kali, pelakunya bukanlah file website Anda, melainkan tumpukan file log yang membengkak di latar belakang.
Berikut adalah panduan taktis langkah demi langkah untuk melacak, membersihkan, dan mencegah ruang penyimpanan VPS penuh kembali.
Langkah 1: Diagnosis & Deteksi Biang Keladi
Jangan langsung menghapus file secara acak. Langkah pertama adalah memetakan di mana letak file-file raksasa tersebut berada.
1. Cek Penggunaan Disk Global
Jalankan perintah berikut untuk melihat partisi mana yang terisi hingga 100%:
Bash
df -h
Biasanya, direktori root (/) adalah wilayah yang paling sering penuh.
2. Cari 10 Folder Terbesar
Untuk mempersempit pencarian, gunakan perintah ini untuk mengurutkan folder yang paling banyak memakan ruang:
Bash
sudo du -ah / | sort -rh | head -n 10
Jika Anda melihat folder /var/log atau /var/lib/mysql berada di urutan atas, berarti masalahnya ada pada log sistem atau log database.
Langkah 2: Tindakan Darurat Kasus “Database Down”
Ketika disk 100% penuh, MySQL/MariaDB biasanya akan otomatis mati (crash) dan tidak bisa dinyalakan kembali karena tidak ada ruang untuk menulis file sementara. Anda tidak bisa membersihkan database dari dalam sebelum membuat ruang kosong darurat dari luar.
1. Hapus File Log Arsip (.gz)
Sistem Linux secara berkala mengarsipkan log lama dalam format .gz. File-file lama ini sangat aman untuk langsung dihapus menggunakan perintah rm:
Bash
sudo rm -f /var/log/*.gz
sudo rm -f /var/log/apache2/*.gz
2. Kosongkan Log Aktif Tanpa Menghapus Filenya
PENTING: Jangan menghapus file log aktif (seperti error.log atau syslog) dengan perintah rm, karena bisa membuat service Apache/MySQL eror. Gunakan perintah truncate untuk membuat ukurannya menjadi 0 MB:
Bash
sudo truncate -s 0 /var/log/apache2/*.log
sudo truncate -s 0 /var/log/syslog
3. Bersihkan Cache WordPress via CLI
Jika Anda menggunakan plugin cache di WordPress, bersihkan folder cache-nya untuk mendapatkan ruang tambahan:
Bash
sudo rm -rf /var/www/html/wp-content/cache/*
(Sesuaikan /var/www/html dengan lokasi folder WordPress Anda).
Setelah melakukan tiga hal di atas, cek kembali penyimpanan dengan df -h. Jika kapasitas sudah turun ke 98% atau 99%, segera nyalakan kembali MySQL Anda:
Bash
sudo systemctl start mysql
Langkah 3: Jinakkan Binary Log (Binlog) MySQL
Penyebab terbesar VPS LAMP tiba-tiba penuh biasanya adalah Binary Log MySQL (binlog.XXXXXX). Log ini mencatat setiap perubahan data yang terjadi pada database. Pada WordPress yang aktif, aktivitas write (seperti transient, update security plugin, dan bot yang mencoba login) membuat binlog membengkak hingga puluhan Gigabyte.
Setelah MySQL berhasil dinyalakan kembali pada Langkah 2, lakukan pembersihan resmi ini:
- Masuk ke terminal MySQL:Bash
mysql -u root -p - Jalankan perintah pembersihan log:
SQL
PURGE BINARY LOGS BEFORE NOW();
- Keluar dari MySQL:SQL
EXIT;
Perintah di atas akan menghapus seluruh file binary log lama secara aman tanpa merusak struktur atau indeks database Anda.
Langkah 4: Pencegahan Jangka Panjang
Agar Anda tidak perlu begadang lagi karena server mendadak penuh, lakukan konfigurasi otomatisasi berikut:
1. Batasi Umur Binary Log MySQL
Secara default, MySQL mempertahankan log terlalu lama. Mari batasi menjadi 3 hari saja.
Open file konfigurasi MySQL (misal: mysqld.cnf atau my.cnf):
Bash
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Cari bagian [mysqld] dan tambahkan baris berikut di bawahnya:
Ini, TOML
binlog_expire_logs_seconds = 259200
(259200 detik sama dengan 3 hari. Setelah 3 hari, MySQL akan menghapus log lama secara otomatis).
Simpan perubahan (Ctrl+O, Enter, Ctrl+X) lalu restart MySQL:
Bash
sudo systemctl restart mysql
2. Catatan Mengenai System Error Log
Banyak pengguna awam mematikan System Error Log demi menghemat space. Ini langkah yang keliru. Error log berukuran kecil dan sangat dibutuhkan jika server mengalami kendala. Jika error log Anda membengkak hingga GB, itu adalah indikasi adanya bug atau eror berulang pada plugin WordPress Anda yang harus diperbaiki, bukan lognya yang dimatikan.
Ringkasan Manajemen File VPS
Sebagai panduan cepat di masa mendatang, berikut adalah tabel referensi file mana saja yang aman dan tidak aman untuk dihapus saat VPS kritis:
| Lokasi / Jenis File | Status | Solusi Terbaik |
/var/log/*.gz | Sangat Aman | Hapus langsung dengan rm -f. |
wp-content/cache/* | Aman | Hapus isinya; WordPress akan generate ulang. |
wp-content/upgrade/* | Aman | Sisa file instalasi update yang bisa dihapus. |
File .log aktif (e.g. syslog) | Gunakan Truncate | Jangan di-rm, kosongkan ukuran dengan truncate -s 0. |
/var/lib/mysql/binlog.* | Gunakan SQL Prompt | Bersihkan lewat perintah PURGE BINARY LOGS. |
/var/lib/mysql/ibdata1 | DILARANG HAPUS | Ini adalah file data utama; menghapusnya akan merusak seluruh database. |
Dengan menerapkan konfigurasi kedaluwarsa log (expire logs) dan mengetahui cara melakukan truncate yang benar, VPS LAMP Anda akan tetap stabil berjalan meski menggunakan spesifikasi storage yang minimal.