Une fois que je suis ssh dans mon serveur distant, quelle serait la commande pour copier tous les fichiers d'un répertoire vers un répertoire local sur ma machine?
Une fois que je suis ssh dans mon serveur distant, quelle serait la commande pour copier tous les fichiers d'un répertoire vers un répertoire local sur ma machine?
Réponses:
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
Voir man rsync
pour une explication de mes commutateurs habituels.
/path/to/local/storage
. Comme ça /path/to/local/storage/copy
. Si c'est ce que vous voulez, c'est génial. Cependant, un scénario plus courant consiste à copier le contenu du répertoire distant dans un répertoire de votre section locale. Ensuite, vous feriez ce /path/to/copy/
qui placerait le contenu dans le répertoire /path/to/local/storage
sans créer de répertoire de copie local.
Si vous avez un accès SSH, vous n'avez pas besoin de SSH d'abord, puis de copier, utilisez simplement Secure Copy (SCP) à partir de la destination.
scp user@host:/path/file /localpath/file
Les caractères génériques sont pris en charge, donc
scp user@host:/path/folder/* /localpath/folder
copiera tous les fichiers distants de ce dossier. Si vous copiez plusieurs répertoires.
note -r copiera également tous les sous-dossiers et le contenu.
scp
plutôt que rsync
? Vérifiez également que votre shell n'essaie pas de se développer user@host:/path/folder/*
, peut-être en utilisant des guillemets simples ( '
).
rsync
directement depuis votre machine locale.