====== Reducing Disk Usage on Ubuntu ======
This guide provides several techniques to help free up space on your Ubuntu system. These methods can be useful if you are running low on disk space and want to optimize your system's storage.
===== General Clean-Up Commands =====
Here are some basic commands to help you get started:
* **Remove Orphaned Packages**: Removes packages that are no longer required.
sudo apt autoremove
* **Remove Unused Dependencies**: Manually inspect and remove unnecessary packages.
sudo apt-get remove --purge
* **Clean Up Old Kernels**: Remove old kernels to free up space.
sudo apt-get remove --purge $(dpkg --list | grep -P '^ii\s+linux-image-\d+' | grep -v $(uname -r) | awk '{print $2}')
===== Manage System Logs =====
System logs can accumulate over time. Here's how to manage them:
* **Clear Systemd Journals**: Reduce the size of systemd journal logs.
sudo journalctl --vacuum-time=2weeks
* **Remove Old Log Files**: Compress and remove older logs in `/var/log/`.
sudo find /var/log -type f -name "*.log" -exec gzip {} \;
sudo find /var/log -type f -name "*.gz" -mtime +30 -exec rm {} \;
===== Remove Unnecessary Files =====
* **Remove Unused Localization Files**: Keep only the locales you need.
sudo apt-get install localepurge
sudo localepurge
* **Remove Snap Packages**: Snap packages can take up a lot of space. Remove them if not needed.
sudo snap remove
sudo apt purge snapd
* **Clear Thumbnail Cache**: Remove the thumbnail cache to free up space.
rm -rf ~/.cache/thumbnails/*
* **Remove Unnecessary Documentation**: Uninstall documentation files for installed packages.
sudo apt-get install --reinstall deborphan
sudo deborphan --guess-data | xargs sudo dpkg --purge
* **Remove Cached Package Files**: Clear out cached `.deb` files.
sudo apt-get clean
===== Managing Docker Disk Usage =====
Docker can use a significant amount of disk space. Here’s how to manage it:
* **Prune Docker System**: Remove unused Docker objects.
docker system prune
* **Log Rotation for Docker**: Set up a log rotation policy for Docker containers.
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
===== Additional Tips =====
* **Check for Large Files**: Find large files taking up space.
sudo du -ah / | sort -rh | head -n 20
**Reduce Image and Video Quality**: Compress images and videos using tools like `ffmpeg` or `imagemagick`.
**Trim the File System**: For SSDs, run the trim command to optimize performance.
sudo fstrim -v /
These methods should help you reclaim significant disk space on your Ubuntu system.
===== cronjob =====
This cron job performs routine maintenance tasks to free up disk space and optimize the system on a low-storage VPS. It includes:
* Journal cleanup: Removes older system logs using journalctl --vacuum-time=7d.
* Docker cleanup: Removes unused Docker objects (containers, images, networks, and volumes) with docker system prune -af --volumes.
* APT cleanup: Frees space by removing unnecessary packages and cleaning up cached package files using apt autoremove -y and apt clean.
* Kernel cleanup: Removes unused old Linux kernels to free significant space.
* Log cleanup: Deletes compressed logs older than 7 days in /var/log.
* Temporary files cleanup: Deletes unused temporary files older than 24 hours from /tmp and /var/tmp.
* Snap cleanup: Removes old and unused versions of Snap packages.
This script is executed every Friday at 2:00 PM (server time) to keep the VPS lean and functioning efficiently.
0 14 * * 5 journalctl --vacuum-time=7d && docker system prune -af --volumes && apt autoremove -y && apt clean && dpkg --list | grep linux-image | grep -v $(uname -r) | awk '{print $2}' | xargs apt-get -y purge && find /var/log -type f -name "*.gz" -mtime +7 -delete && find /tmp -type f -atime +1 -delete && find /var/tmp -type f -atime +1 -delete && snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do snap remove "$snapname" --revision="$revision"; done