Skip to content

Instantly share code, notes, and snippets.

@0xAungkon
Created April 23, 2026 20:09
Show Gist options
  • Select an option

  • Save 0xAungkon/dd7c7bae0c4f954eadca3e9147de95f7 to your computer and use it in GitHub Desktop.

Select an option

Save 0xAungkon/dd7c7bae0c4f954eadca3e9147de95f7 to your computer and use it in GitHub Desktop.
Linux Deep Clean (Clean Logs and Caches)
#!/usr/bin/env bash
set +e
echo "===== BEFORE CLEAN ====="
BEFORE=$(df --output=avail -B1 / 2>/dev/null | tail -1)
df -h /
echo ""
echo "Running cleanup..."
echo ""
command -v apt >/dev/null && {
sudo apt clean -y 2>/dev/null
sudo apt autoclean -y 2>/dev/null
sudo apt autoremove --purge -y 2>/dev/null
}
command -v journalctl >/dev/null && {
sudo journalctl --rotate 2>/dev/null
sudo journalctl --vacuum-time=1s 2>/dev/null
}
sudo rm -rf /tmp/* 2>/dev/null
sudo rm -rf /var/tmp/* 2>/dev/null
rm -rf ~/.cache/* 2>/dev/null
sudo sync
command -v docker >/dev/null && {
docker system prune -a -f 2>/dev/null
docker volume prune -f 2>/dev/null
docker builder prune -a -f 2>/dev/null
docker image prune -a -f 2>/dev/null
docker container prune -f 2>/dev/null
docker network prune -f 2>/dev/null
}
sudo rm -rf /var/log/*.gz 2>/dev/null
sudo rm -rf /var/log/*.[0-9] 2>/dev/null
sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \; 2>/dev/null
command -v snap >/dev/null && {
sudo snap set system refresh.retain=2 2>/dev/null
sudo snap list --all 2>/dev/null | awk '/disabled/{print $1, $3}' | \
while read s r; do
sudo snap remove "$s" --revision="$r" 2>/dev/null
done
}
command -v flatpak >/dev/null && {
flatpak uninstall --unused -y 2>/dev/null
flatpak repair 2>/dev/null
}
rm -rf ~/.cache/thumbnails/* 2>/dev/null
command -v pip >/dev/null && pip cache purge 2>/dev/null
command -v pip3 >/dev/null && pip3 cache purge 2>/dev/null
command -v npm >/dev/null && npm cache clean --force 2>/dev/null
command -v yarn >/dev/null && yarn cache clean 2>/dev/null
command -v gem >/dev/null && gem cleanup 2>/dev/null
sudo rm -rf /var/lib/systemd/coredump/* 2>/dev/null
history -c 2>/dev/null && history -w 2>/dev/null
echo ""
echo "===== AFTER CLEAN ====="
AFTER=$(df --output=avail -B1 / 2>/dev/null | tail -1)
df -h /
CLEANED=$((AFTER - BEFORE))
echo ""
echo "===== RESULT ====="
numfmt --to=iec $CLEANED 2>/dev/null | awk '{print "Space cleaned: "$1}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment