Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Données Transfert des données avec Rsync

De AJLSM
Aller à la navigation Aller à la recherche

Pour le projet BM-Orléans nous manipulons un gros volume de données (~250Go). Certains fichiers sont utiles pour les phases de développement et nécessite qu'ils soient disponible rapidement, sans pour autant être disponible à l'application. Lors du déploiement de l'application de développement sur le serveur houat, et sur le serveur de production, il nous faut transférer uniquement certains fichiers. Voire il faudra n'en mettre à jour que certains. Pour ce faire, nous utiliserons rsync ou l'interface graphique Grsync. Cette article décrit la mise en place du transfert.

Exclusion de fichiers et dossiers

Commençons par définir les fichiers que l'on ne souhaite pas transférer. Pour cela, je place un fichier dans le dossier ~/bm-orleans/src/shell-scripts/rsync-exclude.txt, mais vous pouvez le placer où vous voulez. On utilise des pattern, proche des globs, pour décrire les fichiers à exclure<ref>Rsync: Exclude Patterns</ref> :

*.pdf
*.tiff?
*.csv.bak
tif/
tiff-*/

Simulation

Important :
On fera toujours une simulation avant de lancer une copie. Soit :
  • à l'aide du bouton correspondant (« i » bleu) ;
  • à l'aide de l'option -n ou --dry-run.

Configuration de la GUI

Options basique

Les options de cette onglet ne sont pas très critique. On fera tout de même attention au chemin de destination ajlsm@houat:/home/www/bm-orleans/data/bm-orleans/images/ qui ne précise pas de protocole. C'est en effet l'option -e ssh qui le précise.


Important :
Il ne faut pas indiquer le protocole dans le chemin de la source ou de la cible. C'est l'option -e ssh qui le précise.

Options avancées

Pour les options avancées :

  • on fera attention à ce que l'on veut faire quand on rencontre des liens symboliques : les copier en tant que tels ou les résoudre ;
  • Ici, j'utilise le contrôle par taille de fichier, mais on peut faire un contrôle par checksum (somme de contrôle), qui est plus sûr mais aussi plus consommateur de ressource.
  • C'est dans cet onglet que l'on indique le chemin vers le fichier contenant les patterns à exclure. On peut également utiliser l'option --exclude=PATTERN.

Commande rsync

Si vous préférrez executer la commande via un terminal, voici la commande utilisée pour l'envoi décrit ci-dessus. On commence par définir les variables et ensuite la commande rsync :

excludeFile="/home/elopez/bm-orleans/src/shell-scripts/rsync-exclude.txt"
sourceDir="/media/AJLSM/data-bm-orleans/presse" # un slash de fin indique qu'on copie le contenu sinon le dossier entier
targetDir="ajlsm@houat:/home/www/bm-orleans/data/bm-orleans/images/"
logFile="~/logs/rsync-$(date '+%Y-%b-%d')"
rsync -r -t -v --progress --size-only -z -s -e ssh \
	--exclude-from="$excludeFile" \
	"$sourceDir" \
	"$targetDir"
	--log-file="$logFile"

Références

<references/>