#301 Le 05/03/2009, à 13:48
- m2nis
Re : [HowTo] Sauvegarder son "home" avec rsync
Effectivement, c'est sûrement la solution la plus simple. Le fichier conserve à priori un avantage supplémentaire (dans le cas de Samba notamment), c'est qu'il permet de vérifier que le répertoire n'est pas vide ET est le bon. On est hélas pas à l'abri d'une erreur hors script...
Michaël.
Hors ligne
#302 Le 05/03/2009, à 15:20
- soupaloignon
Re : [HowTo] Sauvegarder son "home" avec rsync
Pour l'instant, le moyen que je vois pour parer au problème est d'avoir, à la racine de la source à synchroniser, un fichier au nom unique dont la présence pourrait être vérifiée avant de lancer le rsync. En cas de disque défectueux, le fichier serait donc aussi inaccessible que le reste de l'arborescence et la catastrophe pourrait être évitée. Mais si vous avez d'autres idées, je suis preneur.
Ca me parait ce qu'il y a de plus simple et d'efficace. En tout cas merci pour ce retour de (malheureuse) expérience
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#303 Le 27/10/2009, à 09:07
- jrev
Re : [HowTo] Sauvegarder son "home" avec rsync
Bonjour,
J'utilise la ligne
rsync -av --del --stats $SOURCE_DIRS "$TARGET_DIR"
pour sauvegarder mes documents sur une clé USB
Je l'utilise aussi pour sauvegarder ces mêmes documents sur le PC d'à coté via un partage de dossiers NFS
sur NFS le script ne copie que les nouveaux dossiers et efface les dossiers supprimés de la sources et cela prend une ou deux secondes à vérifier s'il n'y a pas de changement, mais la sauvegarde sur clé USB passe systématiquement les dossiers un par un et cela prend un temps considérable.
Je ne vois pas comment expliquer la différence de traitement.
Et vous ?
Mal nommer les choses, c'est ajouter au malheur du monde
Hors ligne
#304 Le 27/10/2009, à 09:10
- mixout
Re : [HowTo] Sauvegarder son "home" avec rsync
.. peut-etre une piste
ta clé USB est en Fat32 ?
#305 Le 27/10/2009, à 13:00
- jrev
Re : [HowTo] Sauvegarder son "home" avec rsync
Oui elle est en FAT32
Suffirait-il de la mettre dans le même type de fichier que les partitions Ubuntu ?
Je vais essayer. Quelle est la commande pour formater en reiserfs ?
mkreiserfs -f ?
Dernière modification par jrev (Le 27/10/2009, à 13:11)
Mal nommer les choses, c'est ajouter au malheur du monde
Hors ligne
#306 Le 27/10/2009, à 13:23
- mixout
Re : [HowTo] Sauvegarder son "home" avec rsync
Pas sur ... mais si j'en crois ta commande tu demandes plein de choses à rsync qu'il est incapable de faire avec le systeme de fichiers Fat32
un spécialiste de rsync t'en dira sans doute plus mais j'ai la meme lenteur avec les disques USB.
[EDIT] ah ! si tu rajoutes des éléments à tes posts, mes réponses ne veulent plus rien dire ....
Dernière modification par mixout (Le 27/10/2009, à 13:56)
#307 Le 27/10/2009, à 13:53
- poupoul2
Re : [HowTo] Sauvegarder son "home" avec rsync
Oui elle est en FAT32
Suffirait-il de la mettre dans le même type de fichier que les partitions Ubuntu ?
Il est vraisemblable que cela résoudrait ton problème (Cf. la doc)
L'utilisation de systèmes de fichiers différents avec rsync n'est pas conseillée, pour cause de pertes potentielles de droits et attributs de fichiers et dossiers (ex. fat32).
#308 Le 28/10/2009, à 14:52
- jrev
Re : [HowTo] Sauvegarder son "home" avec rsync
Je ne peux formater ma clé USB en ext3 .
J'enfiche ma clé qui se monte et s'ouvre automatiquement puis je trouve son nom par fdisk -l
je passe ensuite la commande de démontage :
jean@jean:~$ umount /dev/sdf
umount: /dev/sdf n'est pas monté (selon mtab)
jean@jean:~$ mke2fs -j /dev/sda
mke2fs 1.41.4 (27-Jan-2009)
/dev/sda est le périphérique en intégralité, pas seulement une partition !
Procéder malgré tout ? (o,n) o
mke2fs: Permission non accordée lors de la tentative de détermination de la taille du système de fichiers
jean@jean:~$
Où trouver la solution ?
Dernière modification par jrev (Le 28/10/2009, à 20:24)
Mal nommer les choses, c'est ajouter au malheur du monde
Hors ligne
#309 Le 29/10/2009, à 08:43
- jrev
Re : [HowTo] Sauvegarder son "home" avec rsync
La solution est dans Karmic Koala ...
Pour la première fois le menu formater a été ajouté au menu du clic droit sur l'icône de la clé sur le Bureau !
Tout arrive à qui sait attendre :
http://ubuntuforums.org/showthread.php?t=1303504 au post #10
Dernière modification par jrev (Le 29/10/2009, à 08:46)
Mal nommer les choses, c'est ajouter au malheur du monde
Hors ligne
#310 Le 29/10/2009, à 09:00
- soupaloignon
Re : [HowTo] Sauvegarder son "home" avec rsync
sinon tu peux utiliser gparted et démonter puis formater ta clé directement à partir du logiciel. Et même la renommer, pratique pour tester sa présence de manière sure avant un rsync
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#311 Le 29/10/2009, à 09:05
- jrev
Re : [HowTo] Sauvegarder son "home" avec rsync
Merci soupaloignon !
J'ai aussi trouvé sur le forum anglais la formule magique en attendant Karmic Koala :
sudo mkfs -t ext3 /dev/sdx
le sdx à préciser par la commande
sudo fdisk -l
Je peux maintenant utiliser cette clé en ext3 pour sauvegarder mes données et ne rajouter que les nouveaux fichiers dans la sauvegarde.
Bonne journée à tous
Dernière modification par jrev (Le 29/10/2009, à 09:57)
Mal nommer les choses, c'est ajouter au malheur du monde
Hors ligne
#312 Le 29/10/2009, à 17:52
- caspual
Re : [HowTo] Sauvegarder son "home" avec rsync
Salut à tous
Je voudrais faire une sauvegarde à distance par rsync et ssh, rsync et ssh fonctionne déja.
Comme les données font +60 Go, j'ai tout d'abord fait une copie par DD amovible, en reiserfs sur tous les supports (que du Linux donc).
Une fois à la maison, j'ai fais des essais de sauvegarde rsync, seule différence devrait être copié, mais rsync me fait systématiquement une sauvegarde complète, même un fichier datant de 2005 est copié, je le stoppe à chaque fois et fait d'autres essais, sans succés. Voici ma ligne de commande :
rsync -e 'ssh' -rltzvu --size-only --force --progress --ignore-errors --delete --partial caspual@ip_du_serveur::dossier /home/caspual/sauvegarde
En principe, avec size-only, il ne devrait pas copier les anciens fichiers, où est mon erreur ?
@+
Hors ligne
#313 Le 29/10/2009, à 17:56
- jrev
Re : [HowTo] Sauvegarder son "home" avec rsync
Pourquoi n'utilises-tu pas la ligne
rsync -av --del --stats $SOURCE_DIRS "$TARGET_DIR"
Ça paraît bien compliqué ta ligne de synchronisation
Tu pourrais peut-être la simplifier
Dernière modification par jrev (Le 29/10/2009, à 17:58)
Mal nommer les choses, c'est ajouter au malheur du monde
Hors ligne
#314 Le 29/10/2009, à 18:01
- caspual
Re : [HowTo] Sauvegarder son "home" avec rsync
Salut
Au début je n'avais que :
rsync -avz --del source destination
C'est pour résoudre mon pbme que j'ai créé cette ligne, je la simplifierai à nouveau dés que ça marche.
@+
Hors ligne
#315 Le 03/02/2010, à 10:17
- Totor
Re : [HowTo] Sauvegarder son "home" avec rsync
[...]
#!/bin/bash afficheTaille () { taille=$(sed '/\./! s/^.*$/&.00/' <<< $1) i=1 while [[ ${#taille} -ge 7 ]]; do taille=$(bc <<< "scale=2;$taille/1024") ((i+=1)) done case $i in 1) taille+=" octets" ;; 2) taille+=" Ko" ;; 3) taille+=" Mo" ;; 4) taille+=" Go" ;; esac echo $taille } CHOIX=`zenity --list --radiolist --width=300 --height=250 --title="svgrd" --text="Choix du périphérique de sauvegarde" --hide-column=2 \ --column "" --column "" --column "Périphériques" \ TRUE 1 "Disque interne" \ FALSE 2 "Disque Externe"` if [ "$?" = 1 ]; then zenity --info --title="svgrd" --text="Opération annulée." exit fi case $CHOIX in 1) UUID=bcd7940f-f0ca-44a1-bb21-c2b060f68fac MOUNT=/media/svgrd ;; 2) UUID=9db17bd1-d105-4e6a-b5c9-d0a68f69f8eb MOUNT=/media/svgrd_extern ;; esac SRC=$HOME DEST=$MOUNT/$USER RSYNC_ERR=/tmp/rsync.err if [[ ! -e /dev/disk/by-uuid/$UUID ]]; then zenity --error --title="svgrd" --text="Périphérique de sauvegarde absent." else MOUNT_ERR=$(mount $MOUNT 2>&1) MOUNT_ES=$? if [[ ( $MOUNT_ES -ne 0 ) && ( $MOUNT_ES -ne 32 ) ]]; then # 32=déjà montée zenity --error --title="svgrd" --text="Problème lors du montage du périphérique de\nsauvegarde \"$MOUNT\".\n\n<span color='red'><b>mount erreur n° $MOUNT_ES</b>.\n$MOUNT_ERR</span>" else echo "0" > nb DEBUT=$(date +%s) rsync -av --delete --ignore-errors --force --progress \ --filter "- .aMule/Incoming/" \ --filter "- .cache/" \ --filter "- .thumbnails/" \ --filter "- lost+found/" \ --filter "- Musique/" \ --filter "- Vidéos/" \ --filter "- *~" \ --filter "- *.avi" --filter "- *.AVI" \ --filter "- *.log" --filter "- *.LOG" \ --filter "- *.mp3" --filter "- *.MP3" \ --filter "- *.vdi" --filter "- *.VDI" \ --filter "- *.wma" --filter "- *.WMA" \ $SRC/ $DEST/ 2>>$RSYNC_ERR | sed ' /to-check=/! { /^sending/ {d;q;} /\/$/ {d;q;} /^sent/ {s/^.*$/echo "&" \>\/tmp\/rapport\.txt/e;d;q;}; /^total/ {s/^.*$/echo "&" \>\>\/tmp\/rapport\.txt/e;d;q;}; /^.\{43\}/ {s/\(^.\{20\}\).*\(.\{20\}$\)/echo \$\(\(\$\(cat nb\) + 1\)\) \> nb; echo "\1\[...\]\2" \>\/tmp\/svgrd_sed\.txt/e;d;q;}; /^.\{43\}/! {s/^.*$/echo \$\(\(\$\(cat nb\) + 1\)\) \> nb; echo "&" \>\/tmp\/svgrd_sed\.txt/e;d;q;}; } /to-check=/ { s/.*=\(.*\)\/\(.*\))/echo "#`echo "scale=2;\(\2-\1\)\*100\/\2" | bc | cut -d\. -f1`% (\$\(\(\2 - \1\)\) fichiers sur \2\) > \$\(cat \/tmp\/svgrd_sed\.txt\)"\; echo "scale=2;\(\2-\1\)\*100\/\2" | bc/e } ' | zenity --progress --width=580 --title="svgrd - synchronisation" --text="Initialisation de la sauvegarde..." --percentage=0 --auto-close & while true; do sleep 1 if [ -z "$(pidof zenity)" ]; then pkill rsync break fi done FIN=$(date +%s) TEMPS=$(($FIN-$DEBUT)) TP_HEU=$(sed 's/^.$/0&/' <<< $(($TEMPS/3600))) TP_TMP=$(($TEMPS%3600)) TP_MIN=$(sed 's/^.$/0&/' <<< $(($TP_TMP/60))) TP_SEC=$(sed 's/^.$/0&/' <<< $(($TP_TMP%60))) TP=$(echo "$TP_HEU:$TP_MIN:$TP_SEC") ERR=$(cat $RSYNC_ERR) if [[ ${#ERR} -ne 0 ]]; then zenity --error --title="svgrd" --text="Problème lors de la sauvegarde du répertoire <b>$SRC</b>.\n\n<b><span color='red'>$ERR</span></b>." rm $RSYNC_ERR else NB_FICH=$(cat nb) ENVOI=$(afficheTaille $(cat /tmp/rapport.txt | grep sent | cut -d' ' -f2)) RECU=$(afficheTaille $(cat /tmp/rapport.txt | grep sent | cut -d' ' -f6)) VITESS=$(afficheTaille $(cat /tmp/rapport.txt | grep sent | cut -d' ' -f9)) zenity --info --title="svgrd" --text="Sauvegarde du répertoire\n<b>$SRC</b>\nefféctuée avec succès.\n$NB_FICH fichiers synchronisés\n\nEnvoyé:\t$ENVOI\nReçu:\t$RECU\nTemps:\t$TP\nTransfert:\t$VITESS/sec" rm nb fi UMOUNT_ERR=$(umount $MOUNT 2>&1) UMOUNT_ES=$? if [[ $UMOUNT_ES -ne 0 ]]; then zenity --error --title="svgrd" --text="Problème lors du démontage du périphérique de\nsauvegarde \"$MOUNT\".\n\n<span color='red'><b>umount erreur n° $UMOUNT_ES</b>.\n$UMOUNT_ERR</span>" fi fi fi
[...]
Et soyez indulgent je suis débutant
cf .ici
-- Lucid Lynx --
Hors ligne
#316 Le 21/07/2010, à 22:19
- ewfzapp
Re : [HowTo] Sauvegarder son "home" avec rsync
merci a tous pour toutes ces infos
www.indigenecreations.fr
Hors ligne
#317 Le 14/04/2011, à 19:33
- soupaloignon
Re : [HowTo] Sauvegarder son "home" avec rsync
Salut la dedans
Je viens de voir cette info. Elle date un peu, je ne sais pas si c'est toujours d'actualité, mais bon, ça à l'air intéressant.
Salut djibril, je me suis récemment retrouvé a peu près dans le même cas que toi
J'ai constaté que les blocages ou arrêts des transferts étaient principalement du a des coupures réseaux (local et/ou Internet car mes sauvegardes se font sur un autre serveur a travers le web)
Tout ce qui avait déjà été transféré était perdu (plusieurs centaines de Mo voir quelques Go pour les gros fichiers)
Après quelques recherches dans le man de rsync, j'ai trouvé l'option --partial, qui permet de reprendre le téléchargement ou il s'était arrêté avant la coupure.
rsync -zva --partial --delete --stats --progress
Cela n'évite donc pas les blocages ou arrêts mais permet au moins de reprendre le transfert ou il s'était arrêté
PS: il faut bien préciser le --partial avant le --delete sinon le/les fichiers temp déjà téléchargés seront effacés
Le fil est ici : http://www.developpez.net/forums/d51583 … epertoire/
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#318 Le 07/06/2011, à 22:07
- Bruno666
Re : [HowTo] Sauvegarder son "home" avec rsync
Salut à tous, j'ai une petite question :
j'ai un serveur avec ubuntu 10.04 et rsync qui copie des fichiers en local dans un repertoire backup et ce repertoire est ensuite synchronisé avec toujours rsync vers un disque dur distant (à 200 kms)
les synchro fonctionnent très bien mais le souci c'est que lorsque l'on regarde les fichiers dans le disque dur ils ne sont pas tous accessible en lecture car les fichiers ont l'air de garder les droits des utilisateur de linux.
Donc sur mon poste de travail en windows, j'ai un problème de lecture de certains fichiers et impossible des les ouvrir ou de les copier.... donc en cas de restauration sur un nouveau serveur c'est un peu compliqué .....
Avez vous une idée ?
Bonne soirée à tous
Hors ligne
#319 Le 07/06/2011, à 22:44
- FUN
Re : [HowTo] Sauvegarder son "home" avec rsync
Salut
Et ta commande rsync ressemble à quoi ?
Il y a un truc sur la conservation des droits dans le man, du côté des options :
-p, --perms préserve les permissions
-o, --owner préserve le propriétaire (root uniquement)
-g, --group préserve le groupe
FUN
Vieux voyou
Hors ligne
#320 Le 08/06/2011, à 10:57
- Bruno666
Re : [HowTo] Sauvegarder son "home" avec rsync
la commande est la suivante :
rsync --archive --verbose --compress --links --force --ignore-errors --delete --delete-excluded --backup --exclude-from=le_fichier_des_exclus --backup-dir=Destination_des_fichiers/date_du_jour La_cible La_destination/La_date
j'avais vu ces commutateurs pour les droits, mais l'idée est bien de supprimer les droits (voir de mettre un bon vieux 777 à tous les répertoires et les fichiers)
Hors ligne
#321 Le 08/06/2011, à 11:55
- yohann
Re : [HowTo] Sauvegarder son "home" avec rsync
ben le souci vient de --archive qui est fait correspond -p -o -g (+ peut être quelques autre option a vérifier dans le man)
par contre la restoration est sensée être facilitée par cette option puisqu'il suffit de tout recopier pour retrouvé une arborescence identique y compris au niveau des droits
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#322 Le 14/06/2011, à 15:25
- jrev
Re : [HowTo] Sauvegarder son "home" avec rsync
Bonjour à tous,
est-il possible de faire tourner rsync sur Windows ou y a-t-il un équivalent pour synchroniser la sauvegarde de nos Documents ?
Mal nommer les choses, c'est ajouter au malheur du monde
Hors ligne
#323 Le 23/09/2016, à 11:08
- kholo
Re : [HowTo] Sauvegarder son "home" avec rsync
Bonjour à tous,
je déterre le topic pour ajouter un script qui donne le choix des dossiers de départ et destination,
enregistre l'état dans un fichier ini, donne la possibilité de sauvegarder un état (mettre .sync à la fin des fichiers)
et donne le choix entre les trois méthodes données par la doc.
méthode complète pour créer un fichier en terminal :
mkdir $HOME/bin
cd $HOME/bin
touch sauvegarde
chmod +x sauvegarde
nano sauvegarde
et collez le texte suivant
NB dans nano : ctrl +x puis o puis entrée pour quitter en enregistrant
#!/bin/bash
# ----------------------------------------------
# by kholo - www.kholo-informatique.fr
# ----------------------------------------------
nomlogiciel="$(basename "$0")"
FONCTION="https://doc.ubuntu-fr.org/tutoriel/sauvegarder_home_avec_rsync
---------------------------------------------------------------------
Ce module crée une liste de choix pour faire des synchronisation de dossiers
selon trois méthodes
<b>1. Proposition soupaloignon
rsync -rltgoDv --del --ignore-errors --force SOURCE DEST</b>
rsync : appelle le programme rsync
-r : parcours le dossier indiqué et tous ses sous-dossiers
-l : copie les liens symboliques comme liens symboliques
-t : préserve les dates
-g : préserve le groupe
-o : mettre le propriétaire du fichier de destination identique à celui du fichier source
-D : préserve les périphériques
-v : plus loquace
--del : permet de supprimer les fichiers sur destination qui n'existent plus sur source
--ignore-errors : efface même s'il y a eu des erreurs E/S
--force : force la suppression de répertoires même non-vides
<b>2. Proposition Sorbus
rsync -av --del --stats SOURCE DEST</b>
-a : équivalent à -rlptgoD. C'est un moyen rapide de dire que vous voulez la récursion et de préserver pratiquement tout
Par rapport aux options choisies par soupaloignon, la proposition de Sorbus ajoute les options :
-p : provoque la mise à jour des permissions sur la destination pour qu'elles soient identiques aux permissions sur la source.
--stats : affiche quelques statistiques de transfert de fichiers, ce qui permet de vérifier l'efficacité de la sauvegarde.
Mais les options --ignore-errors et --force ne sont pas utilisées.
<b>3. Proposition poupoul2
rsync -a --stats --progress --delete SOURCE DEST</b>
Proposition similaire à celle de Sorbus, avec cependant deux différences par rapport aux propositions de Sorbus et de soupaloignon :
le choix de l'option --progress plutôt que de l'option -v
le choix de l'option --delete plutôt que de l'option --del
--progress : montre l'avancement pendant le transfert.
--delete : efface avant le transfert les fichiers qui n'existent pas sur la source.
--del : efface au cours du transfert (pas avant) les fichiers qui n'existent pas sur la source."
VERSION="0.04"
# NOTES DE VERSIONS
# ----------------------------------------------
# à mettre au début d'un fichier bash
#PID=$$
#FIFO=/tmp/FIFO${PID}
#mkfifo ${FIFO}
# ----------------------------------------------
echo "lancement $nomlogiciel..." ;
# "*******************initialisation*******************"
A_SAUVER=0
SCRIPT_PATH="$(pwd)" ;
FICHIER_LOG="$SCRIPT_PATH/$nomlogiciel.log" ;
FICHIER_INI="$SCRIPT_PATH/$nomlogiciel.ini" ;
FICHIER_SYNC="$FICHIER_INI"
DIR_SOURCE="$HOME" ;
DIR_DEST="/media" ;
OPTIONS="" ;
if [ ! -f "$FICHIER_LOG" ] ; then
touch "$FICHIER_LOG" ;
else
printf '%s' "" | tee "$FICHIER_LOG" ;
fi
function VoirInfos {
# zenity --info --text="$FONCTION"
zenity --info --no-wrap --text="$FONCTION"
}
function VoirUtilisation {
zenity --info --no-wrap --text="Manuel utilisateur
Ce script est basé sur unity et les bases bash.
Chaque ligne conduit vers une fonction... ou rien (lignes de commentaires ou de mise en page).
L'idée est la gestion d'un fichier ini et de fichiers texte de configuration.
Les paramètres sont enregistrés dans le fichier ini en fin de session et propose l'enregistrement d'un fichier pour y enregistrer ses préférences.
Il est possible d'ouvrir une précédente sauvegarde et d'en créer de nouvelles.
Rsync :
Ici ce principe est utilisé pour appliquer au choix une ou plusieurs méthodes de sauvegarde à un dossier source vers un dossier destination.
les trois choix sont représentés dans trois fonctions SOLUTION00X.
Les détails de chaque choix sont expliquées dans les explications."
}
function Journal {
# echo "$@" | tee -a "$FICHIER_LOG" ;
printf '%s' "$@
" | tee -a "$FICHIER_LOG" ;
}
Journal "====================================
$(date)
ouverture du Journal" ;
# GESTION DES FICHIERS INI
# *********************************************
Journal "Chargement..." "charger Initialisation"
function Ini_File {
if [ -f "$FICHIER_INI" ] ;
then
ChargerIni ;
else
touch "$FICHIER_INI" ;
SauverIni ;
fi
}
Journal "Chargement..." "ChargerIni"
function ChargerIni {
while read line ;
do
ParserLigneIni "$line" ;
done < "$FICHIER_INI" ;
}
Journal "Chargement..." "SauverIni"
function SauverIni {
printf '%s' "FICHIER_SYNC=$FICHIER_SYNC
DIR_SOURCE=$DIR_SOURCE
DIR_DEST=$DIR_DEST
OPTIONS=$OPTIONS
" | tee "$FICHIER_INI" ;
}
Journal "Chargement..." "ParserLigneIni"
function ParserLigneIni {
i=$@ ;
case $i in
# xxxxx=*) xxxxxx="${i#*=}" ;;
FICHIER_SYNC=*) FICHIER_SYNC="${i#*=}" ;;
DIR_SOURCE=*) DIR_SOURCE="${i#*=}" ;;
DIR_DEST=*) DIR_DEST="${i#*=}" ;;
OPTIONS=*) OPTIONS="${i#*=}" ;;
esac
}
Journal "Chargement..." "ChoisirIni"
function ChoisirIni {
FILE="$(zenity --file-selection --title='Selectionnez un fichier' \
--file-filter="Sync files (ini,sync) | *.ini *.sync") --text=$FICHIER_INI"
case $? in
0) FICHIER_INI="$FILE" ;
ChargerIni ;;
1) zenity --question \
--title="choix" \
--text="Aucun fichier sélectionné, recommencer ?" \
&& ChoisirIni ;;
# && ChoisirIni || exit;;
-1) echo "An unexpected error has occurred."; exit;;
esac
# zenity --info --text="$FICHIER_INI" ;
}
Journal "lancement..." "Ini_File principal"
Ini_File ;
# FIN GESTION DES FICHIERS INI
# *********************************************
# GESTION DES FICHIERS SYNC
# *********************************************
Journal "Chargement..." "charger sync"
function Sync_File {
if [ -f "$FICHIER_SYNC" ] ;
then
chargerSync ;
else
touch "$FICHIER_SYNC" ;
SauverSync ;
fi
}
Journal "Chargement..." "chargerSync"
function ChargerSync {
while read line ;
do
ParserLigneSync "$line" ;
done < "$FICHIER_SYNC" ;
}
Journal "Chargement..." "SauverSync"
function SauverSync {
FILE="$(zenity --file-selection --save --confirm-overwrite --title='SAUVER : Selectionnez un fichier' \
--filename="$FICHIER_SYNC" --file-filter="Sync files (sync) | *.sync")"
case $? in
0) FICHIER_SYNC="$FILE" ;
A_SAUVER=0
SaveSync ;;
# ChargerSync ;;
1) VALEUR_INUTILE="rien" ;;
# zenity --question \
# --title="choix" \
# --text="Aucun fichier sélectionné, recommencer ?" \
# && SauverSync ;;
# && ChoisirSync || exit;;
-1) echo "An unexpected error has occurred."; exit ;;
esac
}
function SaveSync {
printf '%s' "FICHIER_SYNC=$FICHIER_SYNC
DIR_SOURCE=$DIR_SOURCE
DIR_DEST=$DIR_DEST
OPTIONS=$OPTIONS
" | tee "$FICHIER_SYNC" ;
}
Journal "Chargement..." "ParserLigneSync"
function ParserLigneSync {
i=$@ ;
case $i in
# xxxxx=*) xxxxxx="${i#*=}" ;;
# FICHIER_SYNC=*) FICHIER_SYNC="${i#*=}" ;;
DIR_SOURCE=*) DIR_SOURCE="${i#*=}" ;;
DIR_DEST=*) DIR_DEST="${i#*=}" ;;
OPTIONS=*) OPTIONS="${i#*=}" ;;
esac
}
Journal "Chargement..." "ChoisirSync"
function ChoisirSync {
FILE="$(zenity --file-selection --title="OUVRIR : Selectionnez un fichier" --text="$FICHIER_SYNC" \
--filename="$FICHIER_SYNC" --file-filter="Sync files (sync) | *.sync")"
case $? in
0) FICHIER_SYNC="$FILE" ;
A_SAUVER=1
ChargerSync ;;
1) zenity --question \
--title="choix" \
--text="Aucun fichier sélectionné, recommencer ?" \
&& ChoisirSync ;;
# && ChoisirSync || exit;;
-1) echo "An unexpected error has occurred."; exit;;
esac
# zenity --info --text="$FICHIER_SYNC" ;
}
# FIN GESTION DES FICHIERS SYNC
# *********************************************
Journal "Chargement..." "_quitter"
function _quitter {
# mettre ici tout ce qui sera nescessaire à la bonne fermeture
if [ "$A_SAUVER -eq 1" ] ; then
SauverSync ;
else
zenity --info --text="rien à sauver"
fi
SauverIni ;
exit 0
}
Journal "Chargement..." "SetDIR_SOURCE"
function SetDIR_SOURCE {
# Choisir le dossier DIR_SOURCE
tmpDIR_SOURCE=$(zenity --file-selection \
--filename="${DIR_SOURCE}" \
--title="Veuillez selectionner un dossier" \
--text="Choissisez un dossier source
Annulez pour conserver
${DIR_SOURCE}" \
--directory);
if [ $? = 0 ] ; then
# "Détecter la présence du volume de destination et interrompre l'opération si nécessaire"
if [ ! -e "$tmpDIR_SOURCE" ] ; then
Journal "Attention, je ne trouve pas la source demandée" ;
# exit 100 ;
else
A_SAUVER=1
DIR_SOURCE="${tmpDIR_SOURCE}" ;
fi
# else
# _quitter ;
fi
}
Journal "Chargement..." "SetDIR_DEST"
function SetDIR_DEST {
# Choisir le dossier DIR_DEST
tmpDIR_DEST=$(zenity --file-selection \
--filename="${DIR_DEST}" \
--title="Veuillez selectionner un dossier" \
--text="Choissisez un dossier de destination
Annulez pour conserver
${DIR_DEST}" \
--directory);
if [ $? = 0 ] ; then
# "Détecter la présence du volume de destination et interrompre l'opération si nécessaire"
if [ ! -e "$tmpDIR_DEST" ] ; then
Journal "Attention, le disque de sauvegarde n'est pas présent" ;
# exit 101 ;
else
A_SAUVER=1
DIR_DEST="${tmpDIR_DEST}" ;
fi
# else
# _quitter ;
fi
}
Journal "Chargement..." "SOLUTION001"
function SOLUTION001 {
zenity --info --no-wrap --text="Proposition soupaloignon
rsync : appelle le programme rsync
-r : parcours le dossier indiqué et tous ses sous-dossiers
-l : copie les liens symboliques comme liens symboliques
-t : préserve les dates
-g : préserve le groupe
-o : mettre le propriétaire du fichier de destination identique à celui du fichier source
-D : préserve les périphériques
-v : plus loquace
--del : permet de supprimer les fichiers sur destination qui n'existent plus sur source
--ignore-errors : efface même s'il y a eu des erreurs E/S
--force : force la suppression de répertoires même non-vides
$DIR_SOURCE : répertoire source
$DIR_DEST : répertoire destination
Cette ligne de commande va donc transférer le contenu de $DIR_SOURCE
vers la destination $DIR_DEST.
-----------------------------------------------
rsync -rltgoDv --del --ignore-errors --force DIR_SOURCE DIR_DEST ;"
rsync -rltgoDv --del --ignore-errors --force "$DIR_SOURCE" "$DIR_DEST" ;
}
Journal "Chargement..." "SOLUTION002"
function SOLUTION002 {
zenity --info --no-wrap --text="Proposition Sorbus
-a : équivalent à -rlptgoD. C'est un moyen rapide de dire que vous voulez la récursion
et de préserver pratiquement tout
Par rapport aux options choisies par soupaloignon, la proposition de Sorbus ajoute les options :
-p : provoque la mise à jour des permissions sur la destination pour qu'elles soient identiques
aux permissions sur la source.
--stats : affiche quelques statistiques de transfert de fichiers, ce qui permet de vérifier
l'efficacité de la sauvegarde.
Mais les options --ignore-errors et --force ne sont pas utilisées.
$DIR_SOURCE : répertoire source
$DIR_DEST : répertoire destination
-----------------------------------------------
rsync -av --del --stats DIR_SOURCE DIR_DEST ;" ;
rsync -av --del --stats "$DIR_SOURCE" "$DIR_DEST" ;
}
Journal "Chargement..." "SOLUTION003"
function SOLUTION003 {
zenity --info --no-wrap --text="Proposition poupoul2
Proposition similaire à celle de Sorbus,
avec cependant deux différences par rapport aux propositions de Sorbus et de soupaloignon :
le choix de l'option --progress plutôt que de l'option -v
le choix de l'option --delete plutôt que de l'option --del
--progress : montre l'avancement pendant le transfert.
--delete : efface avant le transfert les fichiers qui n'existent pas sur la source.
--del : efface au cours du transfert (pas avant) les fichiers qui n'existent pas sur la source.
$DIR_SOURCE : répertoire source
$DIR_DEST : répertoire destination
-----------------------------------------------
rsync -a --stats --progress --delete DIR_SOURCE DIR_DEST ;" ;
rsync -a --stats --progress --delete "$DIR_SOURCE" "$DIR_DEST" ;
}
Journal "Chargement..." "sauvegarde"
function sauvegarde {
zenity --info --no-wrap --text="
# $FICHIER_SYNC : fichier sync
# $DIR_SOURCE : répertoire source
# $DIR_DEST : répertoire destination
# OPTIONS : $OPTIONS"
rsync -"$OPTIONS" "$DIR_SOURCE" "$DIR_DEST" ;
}
# echo "La commande de sauvegarde a terminé son travail..." ;
# echo "Vérifiez dans le terminal s'il n'y a pas eu d'erreur !" ;
Journal "Chargement..." "frm_principale"
function frm_principale {
# Journal "*******************frm_principale*******************"
LAQUESTION="https://doc.ubuntu-fr.org/tutoriel/sauvegarder_home_avec_rsync
---------------------------------------------------------------------
Ce module crée une liste de choix pour faire des synchronisations de dossiers
selon trois méthodes"
KH="Ouvrir .SYNC" ;
VH="$FICHIER_SYNC" ;
KI="Sauve .SYNC" ;
VI="double-cliquez ici !" ;
KA="DIR_SOURCE" ;
VA="$DIR_SOURCE" ;
KB="DIR_DEST" ;
VB="$DIR_DEST" ;
KC="Choisir OPTIONS" ;
VC="$OPTIONS" ;
KD="lancer >>" ;
VD="soupaloignon : -rltgoDv --del --ignore-errors --force" ;
KE=" >>";
VE="Sorbus : -av --del--stats" ;
KF=" >>" ;
VF="poupoul2 : -a --stats --progress --delete" ;
KG=" >>" ;
VG="Voir Explications" ;
KJ="Aide >>" ;
VJ="Utilisation" ;
zenity --list --width=1300 --height=600 --text="$LAQUESTION" \
--ok-label="Sélectionner" \
--cancel-label="quitter" \
--hide-column 1 --column "" --column "choix" --column "Valeur" \
0 "============" "double cliquez sur une ligne pour l'ouvrir" \
8 "$KH" "$VH" \
9 "$KI" "$VI" \
0 "============" "===============================================================" \
1 "$KA" "$VA" \
2 "$KB" "$VB" \
0 "============" "===============================================================" \
4 "$KD" "$VD" \
5 "$KE" "$VE" \
6 "$KF" "$VF" \
0 "============" "===============================================================" \
10 "$KJ" "$VJ" \
7 "$KG" "$VG" \
0 "============" "===============================================================" ; #
# 0 "" "" \
# 0 "********" "mettre options sans le premier -" \
# 3 "$KC" "$VC" \
}
Journal "Chargement..." "frm_principale_parser"
function frm_principale_parser {
Journal "frm_principale_parser : $1"
case $1 in
1) SetDIR_SOURCE ;;
2) SetDIR_DEST ;;
# 3) action 3 ;;
4) SOLUTION001 ;;
5) SOLUTION002 ;;
6) SOLUTION003 ;;
7) VoirInfos ;;
8) ChoisirSync ;;
9) SauverSync ;;
10) VoirUtilisation ;;
0) echo "" ;;
*) #quitter="1"
_quitter ;;
esac
}
Journal "Chargement..." "_main"
function _main {
# Journal "_main" ;
menuchoice=$(frm_principale) ;
Journal "menuchoice=${menuchoice%|*}"
frm_principale_parser ${menuchoice%|*} ; # pour corriger le 1|1
if [ $quitter!="1" ] ; then
# on boucle _main tant que quitter est différent de 1
_main
fi
}
Journal "lancement..." "main principal"
_main
exit 0
Pour lancer :
cd $HOME/bin
./sauvegarde
Hors ligne
#324 Le 01/02/2017, à 21:10
- Octobre
Re : [HowTo] Sauvegarder son "home" avec rsync
Bonsoir, une question
Est ce que Rsync peu fonctionner entre une machine Linux (Debian) et une machine OSX (Sierra) ou est ce uniquement entre deux machines Linux?
Hors ligne
#325 Le 02/02/2017, à 09:16
- kholo
Re : [HowTo] Sauvegarder son "home" avec rsync
Bonsoir, une question
Est ce que Rsync peu fonctionner entre une machine Linux (Debian) et une machine OSX (Sierra) ou est ce uniquement entre deux machines Linux?
rsync n'est que le logiciel de synchro.
une fois que la connexion est établie entre 2 ordinateurs,
les dossiers extérieurs sont définis par leur chemin comme le sont les dossiers locaux.
ftp://, sftp://, smb://, ...
donc, dans rsync (ou grsync), tu définiras un de tes points par ce chemin et l'autre en local...
ta prochaine question : comment établir cette connexion ?
ssh la doc
expliqué sur le forum
sshfs (moins intuitif)
Hors ligne