Maîtriser la gestion de fichiers avec rsync sur Linux en utilisant ava.hosting

La gestion des fichiers entre les systèmes est un jeu d’enfant avec rsync, un puissant utilitaire Linux pour synchroniser et transférer des fichiers sur un réseau. Que vous sauvegardiez des données, mettiez en miroir des répertoires ou migriez des fichiers sur les serveurs dédiés ou VPS haute performance d’ava.hosting, rsync garantit l’efficacité en ne copiant que les changements entre la source et la destination. Par exemple, vous pouvez utiliser rsync pour sauvegarder les fichiers de votre site web hébergé par ava.hosting sur un serveur distant, minimisant ainsi la bande passante et le temps. Ce guide couvre l’installation, l’utilisation et l’automatisation de rsync pour une gestion transparente des fichiers, optimisée pour l’infrastructure fiable d’ava.hosting.

Installer rsync

La plupart des distributions Linux sont livrées avec rsync préinstallé. Pour vérifier s’il est installé, exécutez

rsync --version

S’il n’est pas installé, vous pouvez l’installer en utilisant le gestionnaire de paquets de votre distribution :

  • Debian/Ubuntu:
    sudo apt install rsync
  • RHEL/CentOS:
    sudo yum install rsync
  • Fedora:
    sudo dnf install rsync
  • Arch Linux:
    sudo pacman -S rsync

📌 Comment transférer des fichiers de Windows vers un serveur distant en utilisant rsync via PuTTY SSH ?
Pour utiliser rsync sur Windows via PuTTY SSH, vous devez avoir installé :

PuTTY pour la connexionSSH
rsync et OpenSSH sur Windows
Pagent (optionnel) pour l’authentification automatique avec la clé SSH

Installer rsync sur Windows à l’aide de MSYS2

Si vous avez téléchargé MSYS2, vous pouvez installer rsync facilement en utilisant pacman, le gestionnaire de paquets de MSYS2.

  • Mettre à jour MSYS2 et les paquets existants
    Dans le terminal MSYS2, exécutez :

pacman -Syu

  • Si MSYS2 se ferme automatiquement après la mise à jour, ouvrez-le à nouveau et exécutez-le :

pacman -Su
cette étape permet de s’assurer que vous disposez de la dernière version du gestionnaire de paquets.

  • Installer rsync
    Installez maintenant rsync en utilisant :

pacman -S rsync


💡 Si vous avez besoin d’openssh pour le transfert SSH, installez-le aussi :

pacman -S openssh

Vérifier l’installation
Pour vérifier que rsync a été installé correctement, exécutez :

rsync --version

Syntaxe de base de rsync

La syntaxe de base de rsync est la suivante :

rsync [options] source destination

Options couramment utilisées

  • a: Mode archive (préserve les liens symboliques, les permissions, les horodatages, etc.)
  • v: Sortie verbeuse
  • z : Compression des données du fichier pendant le transfert
  • P: Afficher la progression du transfert
  • r: Copie récursive des répertoires
  • e : Spécifier le shell distant (comme SSH)

Utilisation de rsync pour la synchronisation de fichiers locaux

Pour synchroniser des fichiers entre deux répertoires locaux :

rsync -av /source/directory/ /destination/directory/

La barre oblique / dans la source garantit que seul le contenu du répertoire est copié, et non le répertoire lui-même.

Utilisation de rsync sur un réseau

Transfert de fichiers vers un serveur distant

Pour transférer des fichiers d’un système local vers un serveur distant :

rsync -avz /local/directory/ user@remote_host:/remote/directory/

*Après avoir ajouté la commande dans MSYS2, nous ajouterons les données SSH pour nous connecter au serveur distant et le résultat sera affiché :
Cette commande permet de copier en toute sécurité les fichiers sur le serveur distant à l’aide de SSH.

Vérifiez si la commande a été exécutée avec succès sur votre serveur distant:

ls -lah /home/user/test_backup/ [put_your_directory]

Transfert de fichiers d’un serveur distant vers une machine locale

Pour copier des fichiers d’un serveur distant vers votre machine locale. Par défaut, rsync utilise SSH pour une communication sécurisée. Vous pouvez spécifier explicitement SSH avec :

rsync -avz -e ssh /local/directory/ user@remote_host:/remote/directory/

Si SSH utilise un port qui n’est pas celui par défaut (par exemple, 2222), spécifiez-le comme ceci :

rsync -avz -e "ssh -p 2222" /local/directory/ user@remote_host:/remote/directory/

Synchronisation et suppression des fichiers supplémentaires

Pour supprimer des fichiers supplémentaires dans la destination qui ne sont pas présents dans la source :

La première étape consiste à ajouter des fichiers supplémentaires dans le terminal PuttySSH :

cd /home/user/test_backup/

touch file1.txt file2.log file3.jpg

mkdir extra_files

touch extra_files/old_file.txt

Maintenant, synchronisez le répertoire sans certains fichiers, et rsync supprimera les fichiers qui ne sont plus dans la source :

rsync -av --delete /source/directory/ /destination/directory/

📌 Qu’est-ce que cela fait ?
Tous les fichiers qui sont sur le serveur mais PAS dans test/local seront supprimés.

Résultat MSYS2

Résultat de PuttySSH

Attention : Utilisez –delete avec précaution, car il supprime définitivement les fichiers de la destination.

Exclusion de fichiers et de répertoires

Pour exclure des fichiers ou des répertoires spécifiques :

rsync -av --exclude 'file_or_directory' /source/ user@remote_host:/destination/
Résultat de MSYS2

Résultat de PuttySSH

Pour des exclusions multiples, utilisez :

rsync -av --exclude={'file1','dir1','*.log'} /source/ user@remote_host:/destination/

Exécuter rsync en tant que processus d’arrière-plan

Vous pouvez exécuter rsync en arrière-plan en utilisant nohup:

nohup rsync -avz /source/ user@remote_host:/destination/ 

Cela permet au processus de continuer même après la déconnexion.

Dans la directive locale, nous avons ajouté un nouveau fichier new_file.txt333333, puis nous avons déconnecté le terminal PuttySSH, et la commande ci-dessus nous permet d’envoyer des fichiers même lorsque le serveur est déconnecté.

Automatiser les transferts de fichiers avec les tâches Cron

Pour programmer une synchronisation automatique à l’aide de cron, ouvrez la crontab :

crontab -e

Ajoutez une tâche pour exécuter rsync tous les jours à minuit :

0 0 * * * rsync -avz /source/ user@remote_host:/destination/

Conclusion

rsync est un outil indispensable pour la gestion de fichiers sous Linux, offrant des capacités de synchronisation et de transfert efficaces sur les réseaux. Que vous sauvegardiez un site WordPress, que vous mettiez en miroir des logs, ou que vous migriez des données sur le VPS fiable d’ava.hosting, rsync permet d’économiser du temps et de la bande passante. Par exemple, vous pouvez utiliser rsync pour sauvegarder en toute sécurité le répertoire /var/www de votre serveur ava.hosting vers un emplacement distant, garantissant ainsi la sécurité des données. Avec l’infrastructure haute performance d’ava.hostinget les options polyvalentes de rsync, vous pouvez rationaliser les flux de travail, automatiser les sauvegardes et gérer les fichiers en toute confiance.