Re: [CBLX] différence de 10G ...

[ Thread Index | Date Index | More lists.tuxfamily.org/carrefourblinux Archives ]


Le 17/08/2015 16:45, Philippe Delavalade a écrit :
Le lundi 17 août à 14:41, Aldo a écrit :
Question supp:

On Sun, Aug 16, 2015 at 08:35:48PM +0200, Dominique Asselineau wrote:
.....
L'option -p est inclus dans -a.  Du coup -au aurait suffi.

OK; c noté; mais j'aurais en fait voulu recopier tout ce qui se trouve sous
/mnt/disk/MyMusic/ mais pas avec MyMusic, vu que la cible est ~/MyMusic ou
/MyMusic en tant que ln vers ~/Musique/, si tu vois ce que j'ai voulu faire
/?!
Je me suis donc déjà mis dans ~/Musique ou dans ~/MyMusic, comme tu veux! et
de là j'ai effectué le cp -a
Mais forcément il me copie MyMusic/mm/nn/* et les m3u qui sont sous MyMusic
sur le disque externe; en soi c bien mais ça m'oblige ensuite à re refaire
un mv du contenu de ~/Musique/MyMusic/
(et c'etait là qu'il y avait qqs sous-rep en trop).

Mais si je ne souhaite QUE ce qui est sous /mnt/disk/MuMusic/ on s'y prend
comment alors ?
Car sur /mnt/disk/ y a d'autres répos sous la racine que le MyMusic/

Regarde du côté de rsync dans lequel tu peux copier soit un répertoire,
soit son contenu.


C'est également mon opinion, et pour faire bon poids, je joins un script qui synchronise mon home avec une copie située sur un NAS, avec une grande précision dans le choix et le mode de copie des répertoires ; ce script est en deux parties afin de pouvoir être lancé en tâche de fond par un cron toutes les heures par exemple. Deux scripts externes tentent de rendre tout cela un peu plus lisible, car les options de rsync sont innombrables et toutes passionnantes. Quel logiciel ! Je publie ces scripts pour montrer l'esprit dans lequel on peut utiliser rsync.

Il faut préciser qu'il travaille dans deux modes différents : le mode simple (comme cp, ou scp), et le mode connecté, auquel cas il faut configurer un démon rsync sur la destination ; c'est le cas dans mes scripts, mais pas du tout obligatoire tant qu'on ne passe pas par le réseau, et même là, on peut se débrouiller avec une connexion type ssh pour éviter de configurer un serveur. Ceci dit, un bon NAS comme le synology permet cela, je pense que ce n'est pas le cas de toutes les marques.

C'est un gros boulot d'apprendre à s'en servir, mais c'est comme LaTeX, c'est fabuleux tout ce qu'on peut faire avec.

Également, les deux docs que j'utilise (dont le man en version html en français) :
https://rsync.samba.org/ftp/rsync/rsyncd.conf.html
http://www.delafond.org/traducmanfr/man/man1/rsync.1.html

Gilles


#Liste des fichiers exclus de la sauvegarde avec backup, et aussi de la destruction

#D'abord les fichiers avec un traitement particulier (sauvegarde sans backup, pour raison d'encombrement)
.thunderbird
#Ensuite ceux qui ne seront pas du tout sauvegardés
.*/
.*
#Liste des fichiers/répertoires  avec sauvegarde backup, qui auraient été exclus autrement par les règles d'exclusion
.scripts_persos
#!/bin/sh

#################################################################
#Les scripts persos sont placés dans /home/$user/.scripts_persos#
#################################################################
export HOME_DIR=/home/gilles
export SCRIPTS_DIR="$HOME_DIR/.scripts_persos"
export LOG_DIR="$HOME_DIR/.log"

#################################################################
#On appelle un script et on passe la main                       #
#On définit le fichier des log.                                 #
#################################################################
SCRIPT=$SCRIPTS_DIR/synchro_home_rsync
LOG_FILE=$LOG_DIR/synchro_home.log


echo "synchro-home tourne \n" > "$LOG_FILE"
echo "Lancement de synchro_home_rsync en arrière-plan\n" > "$LOG_FILE"
#################################################################
#Lancer en background : ()&                                     #
#################################################################
($SCRIPT > "$LOG_FILE" 2>&1 && exit 0) &

#!/bin/sh

#################################################################
#Les scripts persos sont placés dans /home/$user/.scripts_persos#
#################################################################

#################################################################
#Acquisition de la date en cours                                #
#################################################################
DATE=`date +%Y_%m_%d`
HEURE=`date +%H`

#################################################################
#Paramètres de connexion                                        #
#################################################################
# On transmet le contenu du répertoire, pas le répertoire lui-même
SRC_DIR=/home/gilles/
# Nom de l'utilisateur ayant les droits sur le répertoire de destination
TGT_USR=gilles
# Adresse du système de destination
TGT_IP=192.168.1.101
#TGT_IP=DS213air
# Nom du partage configuré dans le /etc/rsyncd.conf du système de destination
TGT_MODULE=synchro_home_gilles
# Nom du répertoire contenant la version synchronisée
TGT_DIR=/last
# Nom du répertoire contenant les versions antérieures des fichiers modifiés
BACKUP_DIR=/previous
# Répertoire pour contenir les transferts interrompus et inachevés
PARTIAL_DIR=/partial

#################################################################
#Liste des options passées à rsync                              #
#################################################################
# --delete : efface les fichiers (de "l'arborescence transmise")
# qui n'existent pas chez l'utilisateur sauf les "exclude"
# --delete-after : comme --delete, mais en fin de transfert ; 
# réclame beaucoup de place sur la destination, utile pour --fuzzy
# -a : archivage (paquet d'options -rlpgtoD) 
# -l les liens seront recréés sur la destination
# -v verbose
# --fuzzy : tente de trouver un fichier destination 
# semblable (nom, date, taille) pour éviter de re-transférer. Lent
# --force : force la suppression des répertoires même non vides
# --progress : montre l'avancement pendant le transfert
# -n dry-run
OPT_SYNC="--delete-after -avl --force"
#Sauvegarde des transferts partiels dans rsync-partials
OPT_PARTIAL="--partial --partial-dir=$PARTIAL_DIR"
#Sauvegarde d'une copie incrémentale indexée par la date
OPT_BACKUP="--backup --backup-dir=$BACKUP_DIR --suffix=$DATE"
# Liste des répertoires transmis et/ou ignorés 
# D'ABORD les fichiers transmis (synchronisés, donc 
# détruits si préexistants et si --delete)
# Il faut un backup pour les fichiers include
# ENSUITE les fichiers ignorés (pas transmis, pas 
# détruits si préexistants sauf si --delete-exclude)
# ENFIN Les fichiers exclus devant être malgré tout sauvegardé 
# sans backup seront traités à part (.thunderbird, .VirtualboxVMs)
#OPT_FILTER="--exclude .aMule --exclude .cache --exclude .co --exclude .config --exclude .local --exclude .thumbnails --exclude #.Trash --exclude Téléchargements --exclude Vidéos --exclude Musique --exclude Littérature --exclude .thunderbird"
OPT_FILTER="--include-from=$SCRIPTS_DIR/rsync_include --exclude-from=$SCRIPTS_DIR/rsync_exclude"
# Emplacement du fichier contenant le passwd  pour la connexion distante
OPT_PSSWD="--password-file=$SCRIPTS_DIR/psswd"
OPT="$OPT_SYNC $OPT_PARTIAL $OPT_BACKUP $OPT_FILTER $OPT_PSSWD"

#################################################################
# Fonction synchronize gère le lancement de rsync               #
#################################################################
synchronize(){
 echo "synchronize";
 echo "\n";
 if test -d $SRC_DIR; then
  echo "Lancement de rsync en mode demon distant."&&echo "\n"&&

# access via rsync daemon (use of "::") 
  rsync $OPT $SRC_DIR "$TGT_USR"@"$TGT_IP"::"$TGT_MODULE""$TGT_DIR"/ && 
  #&& rsync $OPT_SYNC $OPT_PSSWD $SRC_DIR/Vidéos "$TGT_USR"@"$TGT_IP"::"$TGT_MODULE""$TGT_DIR"/ &&
  #rsync $OPT_SYNC $OPT_PSSWD $SRC_DIR/Musique "$TGT_USR"@"$TGT_IP"::"$TGT_MODULE""$TGT_DIR"/ &&
  #rsync $OPT_SYNC $OPT_PSSWD $SRC_DIR/Littérature "$TGT_USR"@"$TGT_IP"::"$TGT_MODULE""$TGT_DIR"/
  rsync $OPT_SYNC $OPT_PSSWD $SRC_DIR/.thunderbird "$TGT_USR"@"$TGT_IP"::"$TGT_MODULE""$TGT_DIR"/ &&
  echo "Fin de synchronize";
  else
  echo "L'utilisateur $TGT_USR n'a pas de home"
  fi;
}

#################################################################
# Fonction en_tete affichages informatifs préliminaires         #
#################################################################
en_tete(){
echo "***************************************************" ;
echo "***************************************************" ;
echo "\n"
echo $DATE " à " $HEURE "h"
echo "\n"
echo "***************************************************" ;
echo "***************************************************" ;
echo "Synchronisation de /home/gilles sur le volume2 du syno" ;
}

#################################################################
# Corps principal du script                                     #
#################################################################
main(){
en_tete && 
synchronize && echo "Fin de main"
}

#################################################################
# Et enfin le script lui-meme                                   #
#################################################################
main && echo "Fin de la sauvegarde" && exit 0


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/