<![CDATA[Forum Ubuntu-fr.org / [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?id=82232 Thu, 02 Feb 2017 08:16:57 +0000 FluxBB <![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=21673279#p21673279 Octobre a écrit :

Bonsoir, une question smile

Est ce que Rsync peu fonctionner entre une machine Linux (Debian) et une machine OSX (Sierra) ou est ce uniquement entre deux machines Linux?

smile

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)

]]>
Thu, 02 Feb 2017 08:16:57 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=21673279#p21673279
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=21673089#p21673089 Bonsoir, une question smile

Est ce que Rsync peu fonctionner entre une machine Linux (Debian) et une machine OSX (Sierra) ou est ce uniquement entre deux machines Linux?

smile

]]>
Wed, 01 Feb 2017 20:10:31 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=21673089#p21673089
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=21595107#p21595107 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
]]>
Fri, 23 Sep 2016 10:08:54 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=21595107#p21595107
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=4972201#p4972201 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 ?

]]>
Tue, 14 Jun 2011 14:25:40 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=4972201#p4972201
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=4885531#p4885531 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

]]>
Wed, 08 Jun 2011 10:55:17 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=4885531#p4885531
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=4884711#p4884711 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)

]]>
Wed, 08 Jun 2011 09:57:18 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=4884711#p4884711
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=4880291#p4880291 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

http://man.developpez.com/man1/rsync.1.php/#L12

]]>
Tue, 07 Jun 2011 21:44:07 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=4880291#p4880291
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=4879741#p4879741 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

]]>
Tue, 07 Jun 2011 21:07:01 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=4879741#p4879741
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=4082932#p4082932 Salut la dedans wink

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/

]]>
Thu, 14 Apr 2011 18:33:16 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=4082932#p4082932
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3616021#p3616021 merci a tous pour toutes ces infos

]]>
Wed, 21 Jul 2010 21:19:37 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3616021#p3616021
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3254843#p3254843 koderez a écrit :

[...]

#!/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 smile

cf .ici

]]>
Wed, 03 Feb 2010 09:17:10 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3254843#p3254843
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3018987#p3018987 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.

@+

]]>
Thu, 29 Oct 2009 17:01:17 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3018987#p3018987
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3018976#p3018976 Pourquoi n'utilises-tu pas la ligne

rsync -av --del --stats $SOURCE_DIRS "$TARGET_DIR"

Ça paraît bien compliqué ta ligne de synchronisation big_smile
Tu pourrais peut-être la simplifier hmm

]]>
Thu, 29 Oct 2009 16:56:39 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3018976#p3018976
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3018969#p3018969 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 ?

@+

]]>
Thu, 29 Oct 2009 16:52:14 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3018969#p3018969
<![CDATA[Réponse à : [HowTo] Sauvegarder son "home" avec rsync]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3017330#p3017330 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 smile

]]>
Thu, 29 Oct 2009 08:05:50 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3017330#p3017330