Tel quel, je viens d'en refaire une version
en utilisant des
if then else
Code : Tout sélectionner
#!/bin/bash
#
# Ce script permet de faire une sauvegarde incrémentale manuelle avec "rsync"
# Il peut être lancé à partir d'un bouton personnalisé dans un tableau de bord.
#
# Variables de couleurs
VERT="\\033[1;32m"
STNDT="\\033[0;39m"
ROUGE="\\033[1;31m"
ROSE="\\033[1;35m"
BLEU="\\033[1;34m"
BLANC="\\033[0;02m"
JAUNE="\\033[1;33m"
CYAN="\\033[1;36m"
# pour donner un nom "raccourci" (incluant le chemin) au fichier backuperror0.log :
backup="/home/bernard/bin/Sauvegardes/backuperror0Del-portable_Sauv1T_500go_SSD224Go.log"
echo -e "${BLEU}Exécuter la sauvegarde ? [o/N]${STNDT}"
read -sn1
[[ $REPLY =~ [yYoO] ]] || { echo -e "${ROUGE}Abandon sauvegarde.${STNDT}\nSortie Sauvegarde"; exit; }
echo -e "${VERT}Sauvegarde lancée !\n${JAUNE}----\nLancement sauvegarde le : $(date +%d-%m-%Y' à '%T)${STNDT}"
echo -e "${ROSE}-----------\nSynchronisation en cours...\n ------------${STNDT}"
#SSD224Go
mountPnt="/media/bernard/SSD224Go"
repSauvg="${mountPnt}"
msgColor="${ROSE}"
if $(mountpoint "${mountPnt}" -q); then
echo -e "${msgColor}-----------\nSynchronisation en cours...\n ------------${STNDT}"
repPerso="/home/bernard"
rsync -a -P --del --stats "${repPerso}/DocumentsPerso" "${repSauvg}" 2>> "${backup}"
rsync -a -P --del --stats "${repPerso}/MesDocuments" "${repSauvg}" 2>> "${backup}"
rsync -a -P --del --stats "${repPerso}/MesPhotos" "${repSauvg}" 2>> "${backup}"
rsync -a -P --del --stats "${repPerso}/MesScripts" "${repSauvg}" 2>> "${backup}"
else
echo "Attention, ${mountPnt} absent"
fi
#DDSauv1To-a
mountPnt="/media/bernard/Sauv1To-a"
repSauvg="${mountPnt}/SauvDdPrincipal1"
msgColor="${ROSE}"
if $(mountpoint "${mountPnt}" -q); then
if [ -d "${repSauvg}" ]; then
echo -e "${msgColor}-----------\nSynchronisation en cours...\n ------------${STNDT}"
rsync -a -P --del --stats /home "${repSauvg}" 2>> "${backup}"
rsync -a -P --del --stats /etc "${repSauvg}" 2>> "${backup}"
rsync -a -P --del --stats /var "${repSauvg}" 2>> "${backup}"
else
echo "Attention, répertoire ${repSauvg} absent"
fi
else
echo "Attention, ${mountPnt} absent"
fi
#DD500Go
mountPnt="/media/usb0"
repSauvg="${mountPnt}/SauvDdPrincipal2"
msgColor="${BLEU}"
if $(mountpoint "${mountPnt}" -q); then
if [ -d "${repSauvg}" ]; then
echo -e "${msgColor}-----------\nSynchronisation en cours...\n ------------${STNDT}"
rsync -a -P --del --stats /home "${repSauvg}" 2>> "${backup}"
rsync -a -P --del --stats /etc "${repSauvg}" 2>> "${backup}"
rsync -a -P --del --stats /var "${repSauvg}" 2>> "${backup}"
else
echo "Attention, répertoire ${repSauvg} absent"
fi
else
echo "Attention, ${mountPnt} absent"
fi
#========
if [ -s "${backup}" ]; then
echo "Sauvegarde terminée : $(date +%d-%m-%Y' à' %T)\n"
else
echo "Procédure interrompue par l'utilisateur."
fi
read -p "Pour fermer le programme de sauvegarde : Ctrl + C"
# ---- fin du script ----
En espérant que ça fonctionne…
=======
DbFr871 a écrit :…
il y en aurait une qui me vient dés à présent, c'est celle d'informer que le support "x" est absent, avec une validation de l'info, éventuellement... mais pas du tout obligé, et que le script continue à sauvegarder sur les supports présents...
Qu'est-ce que Vous en pensez ?
…
je pense qu'il n'y a que toi qui peut définir la façon dont tu veux voir fonctionner ce script
puisque c'est en fonction de ce que tu veux en faire et en fonction du contexte dans lequel il va devoir fonctionner.
Il serait sans doute assez long et fastidieux de décrire ce contexte et la façon dont tu veux l'utiliser,
et d'un autre côté, lister toutes les possibilités est tout aussi difficile, sans compter que je ne les connais pas toutes,
et qu'il y a des personnes beaucoup plus compétentes que moi.
=======
EDIT : J'avais oublié 2 chiures de mouches dans le format de la date.
En fait, c'est une erreur de copié/collé.
Je viens de les rajouter, ce qui donne :
date +%d-%m-%Y' à '%T