Il arrive très souvent que l’on ait besoin de transférer des fichiers rapidement, d’un serveur à un autre par exemple.

Transférer des fichiers d'un serveur à un autre avec rsync photo

Bien sûr, on peut utiliser le FTP mais il y a beaucoup plus rapide et efficace : je vous présente rsync.

Synchronisation distante

rsync (remote synchronization ou “synchronisation distante” en français) est un logiciel libre de synchronisation de fichiers (disponible sous toutes les plateformes) : la synchronisation est unidirectionnelle, c’est-à-dire qu’elle copie les fichiers de la source en direction de la destination.

rsync est donc utilisé pour réaliser des sauvegardes incrémentales ou pour diffuser le contenu d’un répertoire de référence.

Je vous donne ici les deux commandes que j’utilise quotidiennement lors de ma gestion des serveurs.

Copier tous les fichiers d’un répertoire du serveur A dans le répertoire équivalent du serveur B

Premièrement, connectez-vous via SSH à votre serveur A. Voici la commande :

/* Copie tous les fichiers de /home/website/ vers serveur B. */
rsync --ignore-existing --progress /home/movies/*.* matt@serveurB.net:/home/movies/

Explications:

  • --ignore-existing signifie que si le fichier existe déjà, on ne le remplace pas.
  • --progress montre la vitesse du transfert et les noms des fichiers transférés.
  • matt@serveurB.net est le nom du login SSH (matt) associé à l’adresse du serveur B (IP ou nom de domaine).
  • /home/website/ : répertoire vers lequel copier les fichiers.

En lançant cette commande, je récupère sur le serveur B tous les fichiers qui se trouvent dans le répertoire /home/movies/ du serveur A. Je ne remplace pas les fichiers existants : étant donné que je ne synchronise qu’avec rsync, ce serait inutile.

Copier tous les fichiers et sous-répertoires d’un répertoire (synchronisation récursive) sur le serveur B

/* Copie tous les fichiers et sous-dossiers de /home/series/ sur serveur B. */
rsync --ignore-existing --progress -r /home/series/*.* matt@serveurB.net:/home/series/

Explications: -r signifie de manière récursive, c’est-à-dire que tous les fichiers et sous-dossiers du répertoire /home/series/ seront copiés sur le serveur B.

A lire :  SkyMinds.Net passe en compte Elite

C’est idéal pour sauvegarder les fichiers du site ou les ressources statiques. On lance la commande dans le terminal et hop, on peut aller se faire un café, tout tourne en fond de tâche.

Synchronisation récursive avec connexion SSH sur un autre port que le port 22

Reprenons l’exemple précédent mais connectons-nous maintenant sur le serveur B en SSH sur un autre port que le port par défaut (22) :

rsync --ignore-existing --progress -vr --rsh='ssh -p59222' /home/vids/*.* admin@example.com:/volume1/vids

Ici, --rsh='ssh -p59222' indique que la connexion SSH doit se faire sur le port indiqué (ici 59222). Cela me permet de sauvegarder tout un répertoire et de l’envoyer sur mon NAS Synology. Très pratique !

Petit exemple fictif

Allez, juste pour le fun, voici un transfert initié avec rsync entre deux serveurs distants d’à peu près 8 000 kilomètres :

Bref, rsync, ça dépote et c’est une commande extrêmement pratique à l’usage.

Pour développer votre projet WordPress ou Woocommerce, faites appel à mon expertise pour réaliser un site rapide, performant et fonctionnel.

Contactez-moi

Si vous avez trouvé une faute d’orthographe, informez-nous en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée s’il vous plaît.

Articles en rapport:

Transférer des fichiers d’un serveur à un autre avec rsync sous Linux

par Matt Lecture: 3 min

Pin It on Pinterest

Share This

Spelling error report

The following text will be sent to our editors: