Re: [CBLX] différence de 10G ... |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/carrefourblinux Archives
]
- To: carrefourblinux@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [CBLX] différence de 10G ...
- From: Gilles Touzé <gilles.touze@xxxxxxxxxxx>
- Date: Mon, 17 Aug 2015 18:47:32 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=simple/simple; d=laposte.net; s=mail1; t=1439830053; bh=vJWBVt0+BmTUpFdcz+EO3n1aO/FzVM7/az0c9HxphzU=; h=Date:From:To:Subject:References:In-Reply-To; b=GsZFtvT+7MEUspP2vRDqG9pIEVYEpwhJolyS1gWqtWla63b91lyS1s1EZEXPllo1/ CUN9smqnKiCPTXRoSB49MoBjfgnDdNiFVoHv+4lfNeJXzUhJEur0l41ZKhQqWxmdVy L5IgFU4vRF54boPu1RR1pK7jH+/hAoXiZiKzAbqAFPBBQyS0esyD5hHneZZjMOjHJr TQPSLhZ5E0lDAbiDY3Az8Lgqu/X3a29ADvVXdBknnkC1ci7BXKpX878jWF5K1XfaoO Btw0GPB1fHXrdK2ZHmG/Lu2E47u8Ef+46bxNTq57gdTpBiZSg253JHZkTBrdBuDRu6 +hzd4fnBhW/cg==
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