Servers without regular cleanup accumulate outdated packages, old kernels, systemd logs, and Snap archives. This leads to disk space degradation and increased backup times. Below is a consistent and safe workflow for LTS servers without a GUI.

1. Basic APT cleaning

APT maintains a cache of downloaded packages and dependencies that are no longer required. These commands are completely safe:

sudo apt update sudo apt autoremove --purge sudo apt autoclean sudo apt clean What they do: sudo apt update sudo apt autoremove --purge sudo apt autoclean sudo apt clean

 

Team Purpose
autoremove --purge Removes unused packages and their configs
autoclean Cleans old package cache files
clean Clears the APT cache completely

2. Removing old kernels

Kernels take up the most space in /boot and /lib/modules.

Recommended and safe method

sudo apt install --reinstall linux-generic sudo apt autoremove --purge APT will automatically remove all kernels except the one in use and the latest backup one. sudo apt install --reinstall linux-generic sudo apt autoremove --purge

 

Alternative method (leave only the last 2 cores)

sudo apt install byobu sudo purge-old-kernels --keep 2 -qy !!!⛔Never delete the current kernel ( sudo apt install byobu sudo purge-old-kernels --keep 2 -qy

uname -r ). Check the output before committing.

3. Cleaning up systemd logs

By default, journalctl stores logs without limitation. For servers with high loads, this can be gigabytes of data.

sudo journalctl --vacuum-time=14d sudo journalctl --vacuum-size=150M Parameter sudo journalctl --vacuum-time=14d sudo journalctl --vacuum-size=150M
  Effect
--vacuum-time Deletes records older than the specified age.
--vacuum-size Limits the total size of the log

4. Cleaning Snap packages

Snap keeps old revisions that are not automatically deleted.

LANG=C snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do sudo snap remove "$snapname" --revision="$revision" done Additional (cleaning Snapshots): LANG=C snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do sudo snap remove "$snapname" --revision="$revision" done

 

sudo snap saved | awk 'NR>1 && $NF=="disabled" {print $1,$2}' | while read set rev; do sudo snap forget "$set"; done 5. Deleting temporary server files sudo snap saved | awk 'NR>1 && $NF=="disabled" {print $1,$2}' | while read set rev; do sudo snap forget "$set"; done

 

sudo rm -rf /var/tmp/* sudo rm -rf /tmp/* sudo find /var/cache -type f -name "*.old" -delete ⛔Do it sudo rm -rf /var/tmp/* sudo rm -rf /tmp/* sudo find /var/cache -type f -name "*.old" -delete

rm -rf /tmp/* only if you are sure that there are no active temporary processes.

6. Clearing old server logs

sudo find /var/log -type f -name "*.gz" -delete sudo find /var/log -type f -name "*.1" -delete sudo find /var/log -type f -name "*.old" -mtime +60 -delete Only archived and old files are deleted. sudo find /var/log -type f -name "*.gz" -delete sudo find /var/log -type f -name "*.1" -delete sudo find /var/log -type f -name "*.old" -mtime +60 -delete

 

7. Control of results

df -h du -sh /var/cache /var/log /var/lib/snapd/snaps /boot Recommended universal order df -h du -sh /var/cache /var/log /var/lib/snapd/snaps /boot

 

sudo apt update sudo apt autoremove --purge sudo apt autoclean sudo apt clean sudo journalctl --vacuum-time=30d sudo journalctl --vacuum-size=300M sudo purge-old-kernels --keep 2 -qy LANG=C snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do sudo snap remove "$snapname" --revision="$revision"; done df -h Result sudo apt update sudo apt autoremove --purge sudo apt autoclean sudo apt clean sudo journalctl --vacuum-time=30d sudo journalctl --vacuum-size=300M sudo purge-old-kernels --keep 2 -qy LANG=C snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do sudo snap remove "$snapname" --revision="$revision"; done df -h

 

On a typical server , 2–15+ GB is freed up.
This reduces the load on the file system, speeds up backups, and prevents the /boot partition from becoming full.