Transfert d’un gros site avec beaucoup de données sur Gandi SH

Problématique :

J’ai deux sites sur deux serveurs Gandi Simple Hosting. Je dois transférer le contenu de l’un sur le serveur de l’autre. Hors j’ai plus de 30Go de données (principalement des images et vidéos)

Je perdrai beaucoup trop de temps par ftp. Je ne souhaite donc surtout pas passer par ma machine locale.  Les commandes rsync ou scp ne sont pas actives sur Gandi SH. Mieux vaut que je passe par un wget en ssh. La connexion sera établie directement entre les deux serveurs avec un débit de transfert optimal.

1 – Compression des données

Je crée un fichier compressé qui contient tout le contenu de htdocs de mon premier site (nommé monsite.com)

tar -zcvf monsite.tar.gz /srv/data/web/vhosts/monsite.com/htdocs/.

Remarque le . à la fin. Il me sert à intégré à mon archive tous les fichiers, y compris les fichiers cachés, comme .htaccess

2 – MD5sum de vérification

Je crée le md5sum qui me permettra de valider mon fichier après téléchargement.

$ md5sum monsite.tar.gz > monmd5.md5

Toutes les explications sur Md5sum

3 – Découpe de l’archive en petits paquets

Dans mon cas, j’obtient un fichier d’archive de 20 Go. C’est trop pour passer par wget.
J’utilise la ligne de commande suivante pour découper cette archive en paquets de 1.1Go

split –line-bytes=1G monsite.tar.gz monsite_ &

Cela va faire quelques fichiers (14 dans notre exemple) préfixés à la fin par aa, le suivant ab, le suivant ac etc… Source de l’astuce

4 – Transfert sur le nouveau serveur

Si vous ne l’avez pas encore fait, placez tous les nouveaux fichiers créés dans un repertoire accessible via http (sur gandi SH, dans votre vhost,le dossier htdocs).

Un simple wget sur les 14 fichiers va alors permettre le transfert d’un serveur à l’autre

$ wget http://monsite.com/monsite_aa
$ wget http://monsite.com/monsite_ab
… et ainsi de suite …

5 – Assemblage des paquets

cat monsite_a* > monsite.tar.gz

Pas plus compliqué ! Source de l’astuce

6 – vérification du md5sum

On récupère le fichier md5

$ wget http://monsite.com/monmd5.md5

Et on vérifie la concordance

$ md5sum -c monmd5.md5

on obtient :
monsite.tar.gz: OK
La découpe, le transfert et la reconstruction se sont bien passés.

7 – Décompression

Reste plus qu’à décompresser tout ça avec

$ tar -zxvf monsite.tar.gz

Conclusion

C’est finalement assez rapide à mettre en place, et les données sont parfaitement conservées. J’ai pu mettre en place un seul canal de transfert entre les deux serveurs à un débit moyen de 70 Mb/s. En moins d’une heure tout était fait.

Par contre la répétition des 14 wget n’est pas très élégante. Avez-vous une meilleur solution pour répondre à cette problématique de transfert de grosses quantités de données sur Gandi SH ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.