464 votes

Copie de fichiers à l'aide de rsync depuis un serveur distant vers une machine locale

Une fois que je me suis connecté par ssh à mon serveur distant, quelle serait la commande pour copier tous les fichiers d'un répertoire vers un répertoire local sur ma machine ?

1 votes

Pourquoi je ne serais pas ssh ? Sinon, comment pourrais-je obtenir un accès en ligne de commande à mon serveur ?

6 votes

Parce que vous pouvez rsync directement depuis votre machine locale.

2 votes

Oh... oui je peux. Je vois les autres réponses maintenant. Merci.

824voto

Johnsyweb Points 45395

Depuis votre machine locale :

rsync -chavzP --stats user@remote.host:/path/to/copy /path/to/local/storage

Depuis votre machine locale avec un port ssh non standard :

rsync -chavzP -e "ssh -p $portNumber" user@remote.host:/path/to/copy /local/path

Ou à partir de l'hôte distant, en supposant que vous voulez vraiment travailler de cette façon et que votre machine locale écoute sur SSH :

rsync -chavzP --stats /path/to/copy user@host.remoted.from:/path/to/local/storage

Ver man rsync pour une explication de mes interrupteurs habituels.

0 votes

La référence semble indiquer qu'il affichera le fichier d'aide, mais cela n'a aucun sens pour moi ?

0 votes

@Mallow : Ah oui, j'ai vu cela se produire dans le passé (je pense sur SunOS). Voir le lien dans ma réponse : h output numbers in a human-readable format

0 votes

Ah je vois, je n'ai pas remarqué la référence -h car il y a deux références à cette option. Ah Je m'assurerai de l'utiliser.

64voto

Tezyn Points 479

Si vous disposez d'un accès SSH, vous n'avez pas besoin de passer par SSH d'abord et de copier ensuite, utilisez simplement Copie sécurisée (SCP) de la destination.

scp user@host:/path/file /localpath/file

Les caractères génériques sont pris en charge, ainsi

scp user@host:/path/folder/* /localpath/folder

copiera tous les fichiers distants de ce dossier. Si vous copiez plus d'un répertoire.

note -r copiera tous les sous-dossiers et le contenu aussi.

7 votes

Pourquoi utiliser scp plutôt que rsync ? Veillez également à ce que votre coquille n'essaie pas de se dilater. user@host:/path/folder/* peut-être en utilisant des guillemets simples ( ' ).

0 votes

Je trouve scp plus facile à utiliser à partir de la destination..... Il s'agit essentiellement de la copie de fichiers par ssh, mais sans avoir à établir la connexion ssh au préalable.

9 votes

Je sais ce que scp est, ce n'était pas ma question. Pourquoi n'avez-vous pas utilisé rsync ? C'est ce que demande la question, cela ne nécessite pas une session SSH établie. y est souvent plus rapide et plus efficace que scp .

7voto

Gryu Points 1692

Je pense qu'il est préférable de copier les fichiers à partir de votre ordinateur local, car si le nombre de fichiers ou leur taille sont très importants, le processus de copie peut être interrompu si votre session ssh actuelle est perdue (pipe cassé ou autre).

Si vous avez configuré la clé ssh pour vous connecter à votre serveur distant, vous pouvez utiliser la commande suivante :

rsync -avP -e "ssh -i /home/local_user/ssh/key_to_access_remote_server.pem" remote_user@remote_host.ip:/home/remote_user/file.gz /home/local_user/Downloads/

v L'option est --verbose , a L'option est --archive - mode archive, P option identique à --partial - conserver les fichiers partiellement transférés, e L'option est --rsh=COMMAND - spécifiant le shell distant à utiliser.

Page de manuel rsync

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X