Created
September 1, 2025 08:52
-
-
Save jonathangreco/ecd3b0bd98582d3b2add5f5e06c237d9 to your computer and use it in GitHub Desktop.
Cleanup Ubuntu
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env bash | |
| # Nettoyage système Ubuntu (APT, noyaux rc, journaux, Snaps, caches utilisateur) | |
| # Usage: bash ~/clean-ubuntu.sh | |
| # Option: --dry-run pour afficher sans supprimer (~/.cache) | |
| set -o pipefail | |
| DRY_RUN=0 | |
| [[ "$1" == "--dry-run" ]] && DRY_RUN=1 | |
| say() { printf "\n\033[1m▶ %s\033[0m\n" "$*"; } | |
| # 0) Infos | |
| say "Espace disque AVANT :" | |
| df -h / | |
| # 1) APT : caches & dépendances orphelines | |
| say "Nettoyage APT (cache + autoremove)…" | |
| sudo apt-get clean | |
| sudo apt-get autoremove --purge -y || true | |
| # 2) Purge des noyaux 'rc' (configs résiduelles seulement) | |
| say "Purge des noyaux marqués 'rc'…" | |
| pkgs=$(dpkg -l 'linux-*' | awk '/^rc/{print $2}') | |
| if [[ -n "$pkgs" ]]; then | |
| echo "$pkgs" | xargs -r sudo dpkg --purge | |
| else | |
| echo "Aucun noyau en 'rc' à purger." | |
| fi | |
| # 3) Journaux systemd : limiter à 100 Mo | |
| if command -v journalctl >/dev/null 2>&1; then | |
| say "Réduction des journaux (100 Mo)…" | |
| sudo journalctl --vacuum-size=100M || true | |
| fi | |
| # 4) Snaps : supprimer révisions désactivées + vider cache snapd | |
| if command -v snap >/dev/null 2>&1; then | |
| say "Nettoyage des révisions Snap désactivées…" | |
| # Conserver 2 révisions | |
| sudo snap set system refresh.retain=2 || true | |
| snap list --all | awk '$6=="disabled"{print $1, $3}' | while read -r name rev; do | |
| [[ -n "$name" && -n "$rev" ]] || continue | |
| echo "Suppression: $name révision $rev" | |
| sudo snap remove "$name" --revision="$rev" || true | |
| done | |
| say "Vidage du cache snapd…" | |
| sudo find /var/lib/snapd/cache -mindepth 1 -delete 2>/dev/null || true | |
| fi | |
| # 5) Caches utilisateur (~/.cache) + thumbnails | |
| say "Taille de ~/.cache AVANT :" | |
| du -sh "$HOME/.cache" 2>/dev/null || true | |
| if [[ $DRY_RUN -eq 1 ]]; then | |
| say "[Dry-run] Je n’efface pas ~/.cache (aperçu seulement)." | |
| else | |
| say "Vidage de ~/.cache (sécurisé, recréé par les apps)…" | |
| rm -rf "$HOME/.cache/"* 2>/dev/null || true | |
| rm -rf "$HOME/.cache/."* 2>/dev/null || true | |
| # Thumbnails (souvent lourd) | |
| rm -rf "$HOME/.cache/thumbnails" 2>/dev/null || true | |
| fi | |
| say "Taille de ~/.cache APRÈS :" | |
| du -sh "$HOME/.cache" 2>/dev/null || true | |
| # 6) Rapide coup d’œil sur /var/log et snaps | |
| say "Taille /var/log :" | |
| sudo du -sh /var/log 2>/dev/null || true | |
| if [[ -d /var/lib/snapd/snaps ]]; then | |
| say "Taille des snaps :" | |
| sudo du -sh /var/lib/snapd/snaps 2>/dev/null || true | |
| fi | |
| # 7) Espace disque après | |
| say "Espace disque APRÈS :" | |
| df -h / | |
| say "Nettoyage terminé ✅" |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
(crontab -l 2>/dev/null; echo "0 10 1 * * bash $HOME/clean-space-disk.sh >> $HOME/clean-space-disk.log 2>&1") | crontab -