Disk penuh adalah akar masalah paling umum di balik kegagalan "acak" di VPS: MariaDB menolak menulis, OpenLiteSpeed tidak bisa membuat PID file, update paket menulis binary corrupt, venv Python panel rusak. Ia juga masalah yang paling mudah diperparah dengan rm -rf yang gegabah. Ini cara yang hati-hati.
df -h /
df -i /
Dua masalah berbeda. Kehabisan ruang berarti file besar. Kehabisan inode padahal ruang masih ada berarti jutaan file kecil, biasanya sesi PHP, antrean mail, pecahan cache, atau direktori log yang lepas kendali. Untuk inode, du akan menyesatkan; hitung filenya:
for d in /var /home /tmp /usr/local/lsws /usr/local/CyberCP; do printf "%-24s " $d; find $d -xdev -type f 2>/dev/null | wc -l; done
du -xh --max-depth=2 / 2>/dev/null | sort -rh | head -20
find / -xdev -type f -size +200M -printf "%s %p\n" 2>/dev/null | sort -rn | head -20
Di server CyberPanel tersangka biasanya, secara berurutan:
/var/log/journal — journal systemd tanpa batas ukuran./usr/local/lsws/logs/ dan /home/*/logs/ — log akses/error OpenLiteSpeed dan per situs yang tidak pernah dirotasi./home/backup, /home/*/backup — backup CyberPanel yang menumpuk./var/lib/mysql — binary log (mysql-bin.*) yang aktif secara default, atau ibdata1 yang besar./var/cache/apt, /var/cache/dnf, /root/.cache/pip — cache paket dan pip./usr/local/lsws/cachedata dan /home/*/lscache — page cache./boot — kernel lama./tmp, /var/tmp — file temp dan sisa upload yang gagal.Jika Anda sudah menghapus sesuatu dan df tidak berubah, ada proses yang masih memegang file itu terbuka:
lsof -nP +L1 | awk 'NR>1{print $1, $7, $9}' | sort -k2 -rn | head
Restart service pemiliknya untuk melepas bloknya: systemctl restart rsyslog untuk syslog, systemctl restart lsws untuk log web. Hindari restart MariaDB untuk ini kecuali terpaksa; kosongkan lognya saja. Inilah juga sebabnya sisa panduan ini mengosongkan log aktif alih-alih menghapusnya.
Ini tidak menyentuh situs, database, atau konfigurasi Anda dan bisa dijalankan bersamaan:
# journal systemd: sisakan 7 hari / 200 MB
journalctl --vacuum-time=7d --vacuum-size=200M
# cache package manager
apt-get clean # Ubuntu
dnf clean all # AlmaLinux / Rocky
# log terotasi/terarsip lebih dari 7 hari
find /var/log /usr/local/lsws/logs /home/*/logs -type f \
\( -name "*.gz" -o -name "*.[0-9]" -o -name "*.old" \) -mtime +7 -delete
# log AKTIF yang besar: kosongkan, jangan hapus
find /var/log /usr/local/lsws/logs /home/*/logs -type f -name "*.log" -size +100M \
-exec truncate -s 0 {} \;
# file temp lebih dari seminggu
find /tmp /var/tmp -xdev -type f -atime +7 -delete
# cache pip (sistem dan venv panel)
rm -rf /root/.cache/pip; /usr/local/CyberCP/bin/pip cache purge 2>/dev/null
# page cache OpenLiteSpeed / LSCache (dibangun ulang otomatis)
find /usr/local/lsws/cachedata /home/*/lscache -mindepth 1 -delete 2>/dev/null
chown -R nobody:nogroup /usr/local/lsws/cachedata # AlmaLinux: nobody:nobody
# core dump
rm -f /core.* /var/lib/systemd/coredump/* 2>/dev/null
Lalu cegah journal dan log membesar lagi:
sed -i 's/^#\?SystemMaxUse=.*/SystemMaxUse=200M/' /etc/systemd/journald.conf
systemctl restart systemd-journald
dan pastikan logrotate mencakup /usr/local/lsws/logs dan /home/*/logs; CyberPanel menyertakan config rotasi, tetapi vhost yang ditambahkan manual kadang terlewat.
Jika /var/lib/mysql/mysql-bin.* besar dan Anda tidak memakai replikasi, bersihkan dari dalam MariaDB, jangan pernah dengan rm:
mysql -e "PURGE BINARY LOGS BEFORE NOW() - INTERVAL 3 DAY;"
# dan batasi: expire_logs_days=3 (atau binlog_expire_logs_seconds) di config MariaDB
Ini membebaskan banyak ruang tetapi masing-masing perlu dilihat dulu.
apt-get autoremove --purge. AlmaLinux: dnf remove $(dnf repoquery --installonly --latest-limit=-2 -q). Pastikan uname -r tidak ada di daftar hapus.find /home/backup /home/*/backup -name "*.tar.gz" -mtime +30 -ls. Pastikan backup yang lebih baru ada, idealnya di luar server.docker system df, lalu docker system prune -a hanya jika Anda yakin tidak ada yang dibutuhkan di sana./var/lib/mysql kecuali lewat MariaDB sendiri./home/*/public_html dan apa pun di home user yang bukan log atau backup yang sudah Anda tinjau./usr/local/lsws/conf, /usr/local/CyberCP, /etc./boot secara umum.rm; kosongkan jika terpaksa.Setelah bersih, jalankan lagi df -h / dan df -i /, lalu restart apa pun yang gagal karena disk penuh. Jika ada yang di-reinstall saat disk penuh, pertimbangkan reinstall lagi sekarang setelah ada ruang, karena salinan sebelumnya mungkin corrupt.
Pembersih disk VPS Medic menampilkan setiap item dengan perkiraan ukurannya, menjalankan yang aman sekaligus, bertanya sebelum yang berisiko, dan menolak yang di atas. Ia juga mendeteksi file terhapus-tapi-terbuka dan hanya me-restart service yang aman di-restart.
Unduh VPS Medic — trial gratis 3 hari