#1 Le 21/11/2012, à 23:25
- H6r6tiqu6
Script de Backup bash de clé USB
Bonsoir à tous !
Dans la ligné de ce topic : http://forum.ubuntu-fr.org/viewtopic.php?id=1103781
Je voulais partager mon script de backup, revu, relativement amélioré, et auquel j'ai rajouté quelques trucs sympas :
Tout d'abord, la partie préliminaire
#!/bin/bash
echo "Veuillez entrer la cause de ce backup :"\n
echo "Backup de routine (1)"
echo "Veille d'un départ (2)"
echo "Changement de support (3)"
echo -n ":"
read choix
if [ $choix -eq 1 ]; then cause="Backup de routine effectué"
elif [ $choix -eq 2 ]; then cause="Veille d'un départ"
elif [ $choix -eq 3 ]; then cause="Changement de support"
fi
la_date=$(date +%d-%m-%Y)
echo "$cause le " $la_date >> logs.txt
exit 0
Et puis enfin, la partie sauvegarde
#!/bin/bash
# changez le path selon votre OS, celui-là est pour OSX.
./cause.sh &&
[ -d /Users/admin/backup_SLAANESH ] || mkdir /Users/admin/backup_SLAANESH
rsync -aorz --verbose --stats --progress /Volumes/SLAANESH/ /Users/admin/backup_SLAANESH && \
echo ""
echo "Backup effectué avec succès, revenez nous voir bientôt" && exit 0 || \
echo "Erreur d'execution, regarde bien si il n'y a pas une merde quelque part !" && exit 1
Tout est placé en CC-BY-SA
PS : Ce script est écris pour un OS X. Forcément, quand on a que des macs à la maison...
PPS : Pour ceux qui douteraient de ma foi en GNU/Linux, ils peuvent aller troller sur ##tdct
PPPS : Je tiens vraiment à remercier pingouinux, pour son aide
Dernière modification par H6r6tiqu6 (Le 28/11/2012, à 18:52)
Hors ligne
#2 Le 21/11/2012, à 23:52
- pingouinux
Re : Script de Backup bash de clé USB
Bonsoir,
Pour info, tu peux simplifier ton premier script en supprimant les parties répétitives :
#!/bin/bash
echo "Veuillez entrer la cause de ce backup :"
echo "Backup de routine (1)"
echo "Veille d'un départ (2)"
echo "Changement de support (3)"
echo -n ":"
read choix
if [ $choix -eq 1 ]; then cause="Backup de routine effectué"
elif [ $choix -eq 2 ]; then cause="Veille d'un départ"
elif [ $choix -eq 3 ]; then cause="Changement de support"
fi
la_date=$(date +%d-%m-%Y)
echo "$cause le " $la_date >> logs.txt
exit 0
Hors ligne
#3 Le 21/11/2012, à 23:58
- PengouinPdt
Re : Script de Backup bash de clé USB
Votre premier script peut se simplifier ainsi :
#!/bin/bash
echo "Veuillez entrer la cause de ce backup :"
echo "Backup de routine (1)"
echo "Veille d'un départ (2)"
echo "Changement de support (3)"
echo -n ":"
read choix
la_date=$(date +%d-%m-%Y)
case $choix in
1) mssg="Backup de routine effectué le" ;;
2) mssg="Veille d'un départ le" ;;
3) mssg="Changement de support le" ;;
esac
echo "$mssg $la_date" >> logs.txt
exit 0
En effet, pourquoi déclarer plusieurs fois la date, les echos alors qu'il n'y a aucun changement dans leurs appels respectifs !
Voili, voilou ...
Dernière modification par PengouinPdt (Le 21/11/2012, à 23:59)
Hors ligne
#4 Le 22/11/2012, à 01:31
- PengouinPdt
Re : Script de Backup bash de clé USB
Tiens une version légèrement plus compliqué ... mais tellement plus intéressante :
#!/bin/bash
menu=$(cat <<MENU
Veuillez entrer la cause de ce backup :
Backup de routine (1)
Veille d'un départ (2)
Changement de support (3)
MENU
)
function menu() {
clear
if [ -n "$1" ]; then echo "Ce choix '$1' n'est pas valable !!!"; fi
choix=0
echo "$menu"
read choix
}
date=$(date +%d-%m-%Y)
while menu; do
case $choix in
1) mssg="Backup de routine effectué le"; break;;
2) mssg="Veille d'un départ le"; break;;
3) mssg="Changement de support le"; break;;
*) menu $choix ;;
esac
done
echo "$mssg $date" >> logs.txt
exit 0
L'avantage, le plus pertinent, est que tant que l'utilisateur ne tape pas un des chiffres de 1 à 3, le menu s'affiche à nouveau ...
Tu remarqueras l'astuce pour afficher le menu.
En premier, je déclare une variable menu par l'usage de la structure appelée 'Heredoc'.
En second, une fonction menu, qui est appelée une première fois par la boucle while (tant qu'on se trouve dans le cas d'appel, on reste dans la boucle ...), et une seconde fois, dans le select, au cas où les touches appuyées sont différentes de 1, 2, ou 3.
À voir, comme un exercice de style ;-)
Hors ligne