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
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
- à l'aide du bouton correspondant (« i » bleu) ;
- à l'aide de l'option
-nou--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.

-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/>