[quote=“MisterFreez”]Oui, tu as raison et tu as bien fais 
Tu as modifié la fin du script ?[/quote]
oui 
do
sauvegarde "${controle[$index]}" "${exclure[$index]}" "${dossier_a_sauver[$index]}" "${sauve[$index]}"
done
En dehors de la question du ‘help’, tu vois encore quelque chose ?
[code]#!/bin/bash
BEGIN INIT INFO
Nom du script : sauvegarde
Auteur : Ricardo, aidé de l’équipe de ‘debian-fr.org’
Date de création : juillet 2011
Utilité : faciliter les sauvegardes
Version : cette version est écrite pour l’utilisation avec deux partitions de sauvegarde, à alterner dans le temps.
#+ Il est souhaitable que ces partitions soient sur un DD différent de celui qui abrite le système
#+ Ce script a été écrit de façon à ce qu’il soit le plus générique possible.
#+ Les seules données que vous devriez avoir à changer, se trouvent dans la partie droite des variables.
Description : script permettant d’effectuer, régulièrement et de façon simple, les sauvegardes de son système
Droits : entièrement libres mais en cas de copie, la citation de “debian-fr.org” nous serait agréable
Modifié le :
Objet de la modification :
END INIT INFO
#----------------- Fonctions ----------------------------
function sauvegarde()
{
sudo rsync -av --del --backup --backup-dir="$1" --exclude-from="$2" “$3” “$4”
# Teste si la sauvegarde a abouti ( = 0), sinon, on sort.
if (("$?" > 0))
then
printf "\nErreur lors de la sauvegarde de %s\n" "$3"
else
printf "\nSauvegarde de %s : OK\n" "$3"
fi
}
function sortie_propre()
{
if [ "$deja_montee" = 0 ]
then
sudo umount "$mount_rep"
else
# Si la partition de sauvegarde était déjà montée lors de l'appel, on sort sans la démonter.
sync
fi
exit
}
#----------------- Variables -------------------
mount_rep="/mnt/autre"
la première donnée, vide, figure le [0], de façon à commencer par [1]
ddext=(’’ ‘/dev/sdb9’ ‘/dev/sdb10’)
systeme_fich=(’’ ‘ext3’ ‘ext2’)
controle=(’’ ‘/home/controle’ ‘/home/controle-ricardo’)
exclure=(’’ ‘/root/exclure’ ‘/home/ricardo/.exclure’)
sauve=(’’ ‘/mnt/autre/sauve’ ‘/mnt/autre/sauve-ricardo’)
dossier_a_sauver=(’’ ‘/’ ‘/home/ricardo’)
#----------------- Départ du script ----------------------------
Teste l’existence des partitions de sauvegarde et celle du dossier de montage, sinon, on sort avec erreur 1.
[ -e "${ddext[1]}" ] && [ -e "${ddext[2]}" ] || { echo "Le DDext ne répond pas !" >&2; exit 1; }
mkdir -p "$mount_rep" || { echo "Le dossier de montage n'existe pas !" >&2; exit 1; }
Choix de la sauvegarde. Si le montage ne s’effectue pas, on sort avec via la fonction ‘sortie_propre()’
deja_montee=0
PS3="Entrez le N° de la sauvegarde choisie : "
select choix_sauvegarde in “sauve” “sauve2” quitter
do
case ${REPLY} in
[1-2])
index=${REPLY}
if ! grep -q “^${ddext[$index]} “$mount_rep” ${systeme_fich[$index]}” /etc/mtab
then
sudo mount -t “${systeme_fich[$index]}” “${ddext[$index]}” “$mount_rep” || sortie_propre
break
else
printf "Info : La partition ${ddext[$index]} est déjà montée\n"
deja_montee=1
break
fi
;;
3) echo “On sort du script”; sortie_propre
;;
*) echo “Saisie non valide !”
;;
esac
done
Teste si la corbeille est pleine (pésence de fichier(s) dans … /files), si elle l’est, liste les fichiers qu’elle contient
echo -e "\033[4mCONTENU de la CORBEILLE\033[0m\n"
if [ -e ~/.local/share/Trash/files/ ]
then
ls ~/.local/share/Trash/files
read -p "on peut la vider ? o/* : " corbeille
if [ “$corbeille” = o ]
then
rm -rf ~/.local/share/Trash/*
echo -e "\033[4mCORBEILLE VIDÉE\033[0m"
fi
else
echo "La corbeille est vide"
fi
Ordre de sauvegarde faisant appel à la fonction ‘sauvegarde()’
read -p "prêt pour la sauvegarde ? o/* : " onyva
if [ “$onyva” = o ]
then
for((index=1; index < ${#controle[@]}; index++))
do
sauvegarde “${controle[$index]}” “${exclure[$index]}” “${dossier_a_sauver[$index]}” "${sauve[$index]}"
done
sortie_propre
else
sortie_propre
fi
[/code]