«Rsync» de distant à local

14

Disons que j'ai 2 machines:

  • local (centos)
  • à distance sur IP: 123.123.123.123 port ssh 456 (serveur ubuntu)

et je veux synchroniser mon dossier distant /home/wolfy/pyavec mon dossier local /home/cavo/python.

Cela peut-il être fait avec rsync? Peux-tu me donner un exemple?

Wolfy
la source

Réponses:

18

Essaye ça:

rsync -ave 'ssh -p 456' /home/cavo/python/ [email protected]:/home/wolfy/py/ 

Notez que les barres obliques de fin sur les chemins sont très importantes, elles signalent que vous synchronisez un répertoire avec un répertoire. Le -ecommutateur permet de rsyncsavoir qu'il va utiliser le sshtransport, et pendant que nous spécifions le transport, nous indiquons également à ssh quel port il devra utiliser pour parler au site distant. Ensuite, le nom d'utilisateur et l'adresse IP de l'hôte distant sont spécifiés comme faisant partie de la cible.

Caleb
la source
fonctionne parfaitement :) merci pour une explication détaillée!
Wolfy
1
La barre oblique de fin n'est importante que sur la source, pas sur la destination.
enzotib
2
Je suis confus, cette copie du local vers le distant n'est-elle pas? Selon stackoverflow.com/a/9090859/277267, c'est l'inverse.
Daniel F
@DanielF Oui, c'est le cas. Je suppose que c'est ce que le PO voulait dire par sa question. Notez son utilisation de «avec» et la formulation non conventionnelle. Si vous voulez vraiment synchroniser un répertoire distant avec un répertoire local, vous pouvez inverser les arguments. Source d'abord puis cible.
Caleb
@Caleb Oui, mais le titre indique "de distant à local".
Daniel F
0

Pour ceux d'entre nous qui aiment la solution détaillée.

sudo rsync --ignore-existing --recursive username@domain:/location/to/files/ files/

N'oubliez pas que vous avez toujours un homme avec vous.

$ man rsync
Meule
la source