Table of Contents
rclone
https://rclone.org/ est une application écrite en Go (et compatible avec tous les systèmes d'exploitation). Ce qui est sensé faciliter l'ensemble des opérations de transferts (SSH inclus), sans autre dépendance qu'un binaire à placer au bon endroit.
L'avantage de passer par celle-ci plutôt que par rsync ou scp scp est simplement de pouvoir
- Le déployer facilement sur n'importe quel système (ce qui me permet de dégager WSL sur Windows pour ne passer que par Chocolatey,
- De n'avoir qu'une seule syntaxe à appréhender,
- Il est multithreadé : plutôt que d'attendre que le transfert d'un fichier soit terminé pour passer au suivant, il envoie nativement quatre fichiers simultanément.
Configuration
La configuration peut être auto-générée grâce à la commande rclone config. Après avoir répondu aux quelques questions, un fichier sera généré et placé dans le répertoire ~/.config/rclone/rclone.conf.
Ma configuration est la suivante pour contacter l'hôte patapouf (que l'on pourra appeler tel quel dans les appels, au moment de la synchronisation effective) :
[patapouf] type = sftp host = <host> key_file = ~/.ssh/id_ed25519 known_hosts_file = ~/.ssh/known_hosts skip_links = true idle_timeout = 30s shell_type = unix
sync
Attention que la toute première synchronisation peut potentiellement SUPPRIMER des données. Faites bien attention à utiliser les modes interactive et dry-run lors du premier démarrage. Faites également attention à ce que la SOURCE soit spécifiée AVANT la DESTINATION.
rclone sync /Users/fred patapouf:/mnt/users/boo --exclude ".DS_Store" --exclude "Library**" --exclude ".Trash**" --progress
Notes
- Sur macOS, le Terminal a besoin d'un accès complet au disque. Ceci peut être configuré dans l'écran "Sécurité et Confidentialité" des réglages système.
- L'équivalent rsync serait le suivant :
rsync -e ssh -avz --delete-after "/home/source avec espace/" user@ip_du_serveur:"/dossier/destination avec espace/"