
Je fais suite à la première discussion, d'amélioration, donc, d'évolution, puisque c'est positif


Je reprends certains de vos commentaires, et... les commente

.MicP a écrit : 13 sept. 2017, 14:05 Tel quel, je viens d'en refaire une version
en utilisant des if then else
En espérant que ça fonctionne…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 ----
=======je pense qu'il n'y a que toi qui peut définir la façon dont tu veux voir fonctionner ce scriptDbFr871 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 ?
…
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.
MicP, tu y as répondu, en remettant les conditions, ce qui fait que si un support est absent, le script passe au support suivant, donc, c'est nickel

Je pourrai presque inscrire "résolu"...
mais il y a peut-être, d'autres idées qui vont suivre, de mi, et surtout... de Vous

edit 1
Comme il y avait quelques erreurs sur la date et heure, ainsi que sur les couleurs des différents supports, voici le script qui tourne nickel, et qui prend la couleur souhaitée, en affichant l'heure et la date :
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"
Date=$(date +%d-%m-%Y)
Heure=$(date +%T)
# 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]"
read -sn1
[[ $REPLY =~ [yYoO] ]] || { echo -e "${ROUGE}Abandon sauvegarde.${STNDT}\nSortie Sauvegarde"; exit; }
echo -e "${VERT}Sauvegarde lancée !\n${JAUNE}----\nLancement sauvegarde à : $Heure le $Date"
echo -e "${ROSE}-----------\nSynchronisation en cours...\n ------------"
#SSD224Go=====
mountPnt="/media/bernard/SSD224Go"
repSauvg="${mountPnt}"
msgColor="${CYAN}"
if $(mountpoint "${mountPnt}" -q); then
echo -e "${msgColor}-----------\nSynchronisation en cours...\n ------------"
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 ------------"
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 ------------"
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 -e $STNDT "Sauvegarde terminée à : $Heure le $Date"
else
echo -e $STNDT "Procédure interrompue par l'utilisateur à : $Heure le $Date."
fi
read -p "Pour fermer le programme de sauvegarde : Ctrl + C"
# ---- fin du script ----

EDIT 2
MicP j'ai trouvé où l'heure et la date coinçaient, c'était ici :
Code : Tout sélectionner
echo -e "${VERT}Sauvegarde lancée !\n${JAUNE}----\nLancement sauvegarde le : $(date +%d-%m-%Y) à $(date +%T)"
