Linux>Script
.
              clean_ubuntu_8.04.sh

<-- LINUX

#!/bin/bash
## Script réalisé et mis à jour par Bertrand Perrier le 20/05/08

# Ce script suprime les fichiers et paquet qui ne sont pas nécessaire

# 25/03/07 : ajout de la suppression des fichiers ~ dans /home/$USER
# 24/06/07 : mise en suspens de AUTOREMOVE, car supprime des paquets pour certains programmes
# 20/10/07 : ajout de sudo dpkg --configure -a et sudo apt-get install -f
# 28/10/07 : ajout de l'affichage de l'espace économisé fonction df
# 28/10/07 : modification dans recherche des fichiers ~ (remplacement de *.*~ par *~
# 17/01/08 : affichage de l'espace libre avant, aprés, et le gain ddr en Mo
# 30/01/08 : ajout de la purge des fichiers de configuration inutilisés
# 27/04/08 : mise à jour de l'emplacement de la corbeille passe de la version 7.10 à 8.04
# 06/05/08 : ajout du paramètre -path dans la commande de recherche des fichier ~
# 20/05/08 : amelioration de la recherche des fichiers ~



echo "espace libre disques dur"
SPACE_FREE_BEFORE=$(df -m /dev/sda1 | awk '/\/dev/ {split($1,sda1,"%");if (sda1[1] < 100) {print $4}}')
echo $SPACE_FREE_BEFORE" Mo"


read -p "Voulez-vous effectuer une mise à jour (oui/non) ? " ANSWER
echo " "

if [ $ANSWER = oui ]
	then
		echo " "
		echo "=====MISE A JOUR DE LA LISTE DES PAQUETS====="
		echo " "
		sudo apt-get update
		sudo apt-get dist-upgrade
fi

echo " "
echo "=====CLEAN====="
echo " "
sudo apt-get clean
echo " "
echo "=====AUTOREMOVE====="
echo " "
sudo apt-get autoremove
echo " "
echo "=====AUTOCLEAN====="
echo " "
sudo apt-get autoclean
echo " "
echo "=====FICHIER ~ ====="
echo " "
echo "recherche en cours ..."
echo " "
echo "tapez \"yes\" pour déplacer dans la corbeille"
echo " ou \"no\" pour garder"
echo ""

## cherche dans les dossier finissant par tilde
find $HOME -name "*~" -a ! -path "$HOME/.local/share/Trash*" -ok mv {} ~/.local/share/Trash/files/ \;
find /var/www/ -name "*~" -a ! -ok mv {} ~/.local/share/Trash/files/ \;

echo " "
echo "fin de la recherche"
echo " "
echo "=====CORBEILLE/TRASH====="
echo " "
echo "=====CONTENU DE LA CORBEILLE===="
echo " "
ls -a /home/$USER/.local/share/Trash/files
echo " "
read -p "voulez-vous vider la corbeille ? (oui/non) ? " ANSWER
echo " "

if [ $ANSWER = oui ]
	then
		echo " "
		echo "=====VIDAGE DE LA CORBEILLE====="
		echo " "
		sudo rm -r /home/$USER/.local/share/Trash/files/**
		sudo rm -r /home/$USER/.local/share/Trash/info/**

		echo " "
		read -p "voulez-vous supprimer les répertoires et fichiers cachés ? (oui/non) ? " ERASE_HIDE
		echo " "
		if [ $ERASE_HIDE = oui ]
			then
				sudo rm -r -f ~/.local/share/Trash/files/.*
				sudo rm -r -f ~/.local/share/Trash/info/.*
		fi
fi



## supprime ou purge tous les paquets non dépaquetés, mais qui sont marqués comme devant être supprimés ou purgés
echo " "
read -p "voulez-vous supprimer/purger les paquets non dépaquetés, marqués comme devant être supprimés ou purgés ? (oui/non) ? " ANSWER
echo " "
if [ $ANSWER = oui ]
	then
		echo " "
		echo "=====sudo dpkg --configure -a====="
		echo " "
		sudo dpkg --configure -a
fi


## purge les fichiers de configuration inutilisés
echo " "
read -p "voulez-vous purger les fichiers de configuration inutilisés ? (oui/non) ? " ANSWER
echo " "
if [ $ANSWER = oui ]
	then
		if [ $(COLUMNS=200 dpkg -l | grep "^rc" | tr -s ' ' | cut -d ' ' -f 2) ]
			then
			echo " "
			echo "=====sudo dpkg --purge...====="
			echo " "
			sudo dpkg --purge $(COLUMNS=200 dpkg -l | grep "^rc" | tr -s ' ' | cut -d ' ' -f 2)
			else
			echo " "
			echo "pas de fichier à purger"
			echo " "
		fi
fi

## essaye de réparer un système dont les dépendances sont défectueuses
echo " "
echo "voulez-vous réparer les dépendances de paquet"
read -p "(cette opération peut prendre quelque dixaine de minute) ? (oui/non) ? " ANSWER
echo " "
if [ $ANSWER = oui ]
	then
		echo " "
		echo "=====sudo apt-get install -f====="
		echo " "
		sudo apt-get install -f
fi



echo "espace libre disques dur"
SPACE_FREE_AFTER=$(df -m /dev/sda1 | awk '/\/dev/ {split($1,sda1,"%");if (sda1[1] < 100) {print $4}}')
echo $SPACE_FREE_AFTER" Mo"


SPACE_FREE_WIN=$((SPACE_FREE_AFTER-SPACE_FREE_BEFORE))
echo " "
echo "espace gagné"
echo $SPACE_FREE_WIN" Mo"


read -p "   ***   Appuyer sur un touche pour quitter   ***" ANSWER

<-- LINUX