Bonjour
J'ai remarqué chez moi qu'à chaque fois que je branche une clé usb ou un DD son "nom" change à chaque fois.
Donc pour faire une sauvegarde avec
rsync il faut au préalable que je vérifie et note le nom du périphérique de destination de la sauvegarde.
Pour me soulager de cette opération j'ai écrit ce script inspiré de ceux de soupalonion, de sorbus et d'autres (merci à eux !!) 🙂
#!/bin/bash
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Fonction du script = sauvegarde sur support externe
# 05.01.2017
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
### choix de la source
source=$(zenity --title="Naviguer jusqu'au dossier à sauvegarder sur un périphérique externe, puis valider" --file-selection --directory)
### on se place directement dans /media/USER pour ne pas avoir à naviguer inutilement
cd /media/$USER
dest=$(zenity --title="Cliquer sur le nom du périphérique extérieur (DD externe, USB, ...) qui va recevoir la sauvegarde puis valider" --file-selection --directory)
### si on n'a pas choisi de périphérique de destination, on sort
if [[ $dest == "/media/$USER" ]] ; then zenity --error --text="Pas de périphérique sélectionné : arrêt du script"; exit ; fi
### sinon on sauvegarde "source" sur "destination"
rsync -a "$source" "$dest"
Ça à l'air de marcher puisque je retrouve les fichiers sur le support de sauvegarde mais :
1- j'ai ce message d'erreur que je ne comprends pas puisque je retrouve bien mes fichiers transférés :
rsync: chgrp "/media/moi/41B3-AB83/Images" failed: Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]
2- J'ai un doute sur cette condition :
if [[ $dest == "/media/$USER" ]] ....
- est elle correcte ?
- Les [[ et ]] sont ils nécessaires ?
- Y a til une meilleure (ou plus simple) condition pour tester qu'on a bien choisi un périph valide/existant ?