Search FAQ...
Clear Storage – ONLY cPanel
Table of Contents
Centos / Arma / Rocky:
#!/bin/bash
set -euo pipefail
echo "Starting system cleanup (AlmaLinux)..."
# ---- Safety checks ----
if [[ "${EUID}" -ne 0 ]]; then
echo "ERROR: Run this script as root."
exit 1
fi
# ---- Tunables ----
GZ_DAYS="${GZ_DAYS:-7}" # delete .gz older than this many days
BACKUP_DAYS="${BACKUP_DAYS:-7}" # delete /backup files older than this many days
# Helper: iterate real cPanel home dirs skipping virtfs and non-directories
user_homes() {
for d in /home/*; do
[[ -d "$d" ]] || continue
[[ "$d" == "/home/virtfs" ]] && continue
echo "$d"
done
}
echo "Removing cPanel temp files..."
for h in $(user_homes); do
rm -fv "$h/tmp/Cpanel_"* 2>/dev/null || true
done
echo "Cleaning dnf cache..."
dnf -y clean all >/dev/null 2>&1 || true
rm -rf /var/cache/dnf/* 2>/dev/null || true
echo "Removing Apache backup files..."
rm -fv /usr/local/apache.backup* 2>/dev/null || true
echo "Removing user backups..."
if [[ -d /var/cpanel/users ]]; then
while IFS= read -r user; do
rm -fv "/home/$user/backup-"*"$user.tar.gz" 2>/dev/null || true
done < <(ls -A /var/cpanel/users 2>/dev/null || true)
else
echo "Note: /var/cpanel/users not found (is this a cPanel server?)."
fi
echo "Removing Softaculous backups..."
for h in $(user_homes); do
rm -rf "$h/softaculous_backups/"* 2>/dev/null || true
done
echo "Removing user logs directories..."
for h in $(user_homes); do
rm -rf "$h/logs/"* 2>/dev/null || true
done
echo "Cleaning .trash contents..."
for h in $(user_homes); do
[[ -d "$h/.trash" ]] && rm -rf "$h/.trash/"* 2>/dev/null || true
done
echo "Running dnf autoremove..."
dnf -y autoremove >/dev/null 2>&1 || true
echo "Cleaning system temp files..."
rm -rf /var/tmp/* 2>/dev/null || true
# /var/crash is usually Ubuntu; keep only if it exists
if [[ -d /var/crash ]]; then
rm -rf /var/crash/* 2>/dev/null || true
fi
echo "Removing backups older than ${BACKUP_DAYS} days from /backup..."
if [[ -d /backup ]]; then
find /backup -xdev -type f -mtime +"${BACKUP_DAYS}" -print -delete 2>/dev/null || true
else
echo "Note: /backup not found skipping."
fi
echo "Cleaning cPanel user cache files..."
for h in $(user_homes); do
rm -rf "$h/.cpanel/comet/"* 2>/dev/null || true
rm -rf "$h/.cpanel/datastore/"* 2>/dev/null || true
rm -rf "$h/.cpanel/logs/"* 2>/dev/null || true
done
# ---- LOGS + .GZ CLEANUP (skip /home/virtfs) ----
echo "Rotating logs..."
logrotate -f /etc/logrotate.conf 2>/dev/null || true
echo "Vacuuming systemd journal (older than 3 days)..."
if command -v journalctl >/dev/null 2>&1; then
journalctl --vacuum-time=3d 2>/dev/null || true
fi
echo "Deleting old compressed logs (*.gz) older than ${GZ_DAYS} days (excluding /home/virtfs)..."
# 1) System logs (common place for *.gz rotated logs)
if [[ -d /var/log ]]; then
find /var/log -xdev -type f -name "*.gz" -mtime +"${GZ_DAYS}" -print -delete 2>/dev/null || true
fi
# 2) Backups (if you store compressed backups)
if [[ -d /backup ]]; then
find /backup -xdev -type f -name "*.gz" -mtime +"${GZ_DAYS}" -print -delete 2>/dev/null || true
fi
# 3) User home areas (but DO NOT touch /home/virtfs)
find /home \
-path /home/virtfs -prune -o \
-type f -name "*.gz" -mtime +"${GZ_DAYS}" -print -delete 2>/dev/null || true
# Optional: clean old uncompressed *.log files in user home "logs" dirs only
# (safer than touching /var/log/*.log directly)
echo "Deleting old user-home *.log files older than ${GZ_DAYS} days (home logs only)..."
for h in $(user_homes); do
if [[ -d "$h/logs" ]]; then
find "$h/logs" -type f -name "*.log" -mtime +"${GZ_DAYS}" -print -delete 2>/dev/null || true
fi
done
echo "Cleaning root cache..."
rm -rf /root/.cache/* 2>/dev/null || true
echo "Cleanup completed successfully!"
UBUNTU:
#!/bin/bash
# Cleanup script for system maintenance
echo "Starting system cleanup..."
# Remove Cpanel temp files
echo "Removing Cpanel temp files..."
sudo rm -fv /home/*/tmp/Cpanel_*
# Clean apt cache
echo "Cleaning apt cache..."
sudo apt-get clean
# Remove Apache backup files
echo "Removing Apache backup files..."
sudo rm -fv /usr/local/apache.backup*
# Remove user backups
echo "Removing user backups..."
for user in $(ls -A /var/cpanel/users); do
sudo rm -fv /home/$user/backup-*$user.tar.gz
done
# Remove softaculous backups
echo "Removing softaculous backups..."
sudo rm -rf /home/*/softaculous_backups/*
# Remove user logs
echo "Removing user logs..."
sudo rm -rf /home/*/logs/*
# Remove .trash directories
echo "Cleaning .trash directories..."
sudo find /home -type d -name .trash -exec rm -rf {} +
# System cleanup
echo "Running system autoremove and autoclean..."
sudo apt-get autoremove -y
sudo apt-get autoclean -y
# Clean system temp files
echo "Cleaning system temp files..."
sudo rm -rf /var/crash/*
sudo rm -rf /var/tmp/*
# Clean old backups
echo "Removing backups older than 7 days..."
sudo find /backup -type f -mtime +7 -delete
# Clean cpanel files
echo "Cleaning cpanel files..."
sudo rm -rf /home/*/.cpanel/comet/*
sudo rm -rf /home/*/.cpanel/datastore/*
sudo rm -rf /home/*/.cpanel/logs/*
# Clean system logs
echo "Cleaning system logs..."
sudo find /var/log -type f -name "*.log" -delete
sudo journalctl --vacuum-time=3d
# Clean apt cache and lists
echo "Cleaning apt cache and lists..."
sudo rm -rf /var/cache/apt/archives/*
sudo rm -rf /var/cache/apt/archives/partial/*
sudo rm -rf /var/lib/apt/lists/*
# Clean user cache
echo "Cleaning user cache..."
sudo rm -rf ~/.cache/*
echo "Cleanup completed successfully!"
Save it as “server_clean_up.sh”
chmod +x server_clean_up.sh
./server_clean_up.sh