Skip to content

Instantly share code, notes, and snippets.

@josemarcosrf
Created January 14, 2021 19:28
Show Gist options
  • Save josemarcosrf/1fb45363426f1421b373125e2ad59541 to your computer and use it in GitHub Desktop.
Save josemarcosrf/1fb45363426f1421b373125e2ad59541 to your computer and use it in GitHub Desktop.
Script to clean up and free disk space in Linux; Docker, Snap, cache, etc
#!/bin/bash
set -eu
set -o pipefail
say() {
echo "$@" | sed \
-e "s/\(\(@\(red\|green\|yellow\|blue\|magenta\|cyan\|white\|reset\|b\|u\)\)\+\)[[]\{2\}\(.*\)[]]\{2\}/\1\4@reset/g" \
-e "s/@red/$(tput setaf 1)/g" \
-e "s/@green/$(tput setaf 2)/g" \
-e "s/@yellow/$(tput setaf 3)/g" \
-e "s/@blue/$(tput setaf 4)/g" \
-e "s/@magenta/$(tput setaf 5)/g" \
-e "s/@cyan/$(tput setaf 6)/g" \
-e "s/@white/$(tput setaf 7)/g" \
-e "s/@reset/$(tput sgr0)/g" \
-e "s/@b/$(tput bold)/g" \
-e "s/@u/$(tput sgr 0 1)/g"
}
say @magenta[["===== 1. Cleaning journal logs ====="]]
say @blue[["Space used by sustem logs before:"]]
journalctl --disk-usage
journalctl --vacuum-time=3
say @blue[["Space used by sustem logs after:"]]
journalctl --disk-usage
# =============================================================
say @magenta[["===== 2. Cleaning old apt-get packages ====="]]
say @blue[["Space used by APT packages before:"]]
du -sh /var/cache/apt
apt-get autoremove
say @blue[["Space used by APT packages after:"]]
du -sh /var/cache/apt
# =============================================================
say @magenta[["===== 3. Cleaning old snaps revisions ====="]]
say @blue[["Space used by snap packages before:"]]
du -h /var/lib/snapd/snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done
echo "Space used by snap package afetr:"
du -h /var/lib/snapd/snaps
say @magenta[["===== 4. Cleaning Docker containers ====="]]
docker system prune -a -f;
docker volume rm $(docker volume ls -qf dangling=true)
@tudoanh
Copy link

tudoanh commented Oct 6, 2022

God dam, last line deleted all my docker volume data

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment