Comment télécharger un fichier depuis la ligne de commande? via ssh?


21

Je souhaite télécharger des fichiers d'un serveur distant sur mon lecteur local et le faire à partir de la ligne de commande. Je veux également pouvoir le faire via SSH. Comment puis-je faire ceci?

Remarque: le serveur distant est Ubuntu, le local est Mac OS X

Réponses:


29

Utilisez scp-command, il s'exécute au-dessus de SSH. Exemple:

scp username@remote.host:/path/to/file localfile

Cela fonctionne également dans un autre sens

scp localfile username@host:/path/remotefile

Le nom d'utilisateur, le chemin et le nom de fichier peuvent être omis (mais pas le :!).

Comme Iain l'a dit, SFTP fonctionne également, mais j'ai tendance à privilégier scpson cputilisation similaire.


Moins courant, je suis sûr, et corrigez-moi si je me trompe, mais je pense que scp fonctionne également de distance à distance, si vous avez vraiment besoin de: scp username@remote1:/path/to/file username@remote2:/path/to/file
JMD

pouvez-vous copier des répertoires?
Andrew

compris ... -r copie récursivement les répertoires aussi
Andrew

Je recommande d'ajouter l' -poption lors de la copie de fichiers ou de dossiers avec scp. Il copie également les attributs du fichier (horodatages et drapeaux). Je trouve que je veux -pplus souvent que je ne le veux pas!
joeytwiddle

Vous pouvez également acheminer de distance à distance via l'hôte local à l'aide de l' -3indicateur: scp -3 jeff@firsthost.com:/files/file1.zip brad@secondhost.com:/archivesceci est utile si vous devez utiliser une clé privée pour accéder aux deux serveurs uniquement sur localhost: scp -3i /local/path/to/.ssh/private_key dan@host1:/path/to/file.txt miri@host2:/path/to/upload/dir/la barre de progression est désactivée pour -3
Dan Sandland

3

Vous pouvez également l'utiliser rsyncpour cela. Il peut fonctionner sur SSH.


rsync -avvPest mon préféré pour les fichiers et / ou dossiers, mais il y a un inconvénient: il doit être installé sur la machine distante.
joeytwiddle

Si vous rencontrez des problèmes de connexion, vous devrez peut-être passer -e sshpour dire à rsync de se connecter via ssh.
joeytwiddle

3

J'utilise SFTP pour cela. C'est la ligne de commande et utilise la même sécurité que SSH.


1

Si vous ne pouvez pas utiliser scpou SFTP, vous pouvez utiliser tarvia SSH:

tar cf - . | ssh otherhost "cd /mydir; tar xvf -"

Celui-ci est également bon si vous avez des fichiers clairsemés qui sinon "exploseront".

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.