En SSH, comment puis-je mv à mon système local?


129

J'ai sshajouté dans le répertoire de mon hébergeur, et tarl'application Web à télécharger. Lorsque je tente de mv~/mydirectory/backupsou /home/mydirectory/backups, il définit la « maison » , comme ma racine sur le webhost que je suis en ssh'ed.

Comment puis-je mv en ssh sur un lecteur local tout en restant dans le système de l'hôte Web?


À partir de quel système d'exploitation connectez-vous?
Zoredache

Réponses:


181

Tout d’abord: ssh est un moyen de se connecter à distance à un autre ordinateur. Le shell (ligne de commande) que vous obtenez une fois que ssh est (à peu près) identique à celui que vous aviez ouvert un xterm sur la machine distante. Si n'offre pas un tel moyen de déplacer des fichiers.

Cependant, le fait que l'ordinateur distant accepte les connexions ssh vous donne certaines options pour échanger des fichiers:

Utiliser scp Pour copier de votre ordinateur local vers la télécommande, tapez sur l’ordinateur local:

scp /tmp/file user@example.com:/home/name/dir

(où / tmp / file peut être remplacé par n'importe quel fichier local et / home / name / dir avec n'importe quel répertoire distant)

Pour copier de l'ordinateur distant vers l'ordinateur local, tapez, sur l' ordinateur local :

scp user@example.com:/home/name/dir/file /tmp

Utilisez sshfs C’est un peu plus avancé mais beaucoup, beaucoup plus agréable (quand la connexion Internet des deux ordinateurs est bonne. Sinon, tenez-vous-en à scp)

Vous pouvez "lier" un répertoire de l'ordinateur distant à un répertoire (vide) de l'ordinateur local. Disons que vous "liez" le répertoire / some / remote / dir de l'ordinateur distant à / home / youruser / remotecomp de votre ordinateur. S'il existe un fichier / some / remote / dir / dans l'ordinateur distant, vous pouvez le voir dans / home / votre utilisateur / remotecomp / file. Vous pouvez copier et copier comme d'habitude, et même modifier les fichiers et les répertoires distants.

Notez toutefois que, lorsque la connexion est terminée, / home / youruser / remotecomp redevient un répertoire vide et que vous ne gardez que sur l'ordinateur local les fichiers que vous avez copiés dans d'autres répertoires.

Pour y parvenir:

1) installez sshfs:

sudo apt-get install sshfs

2) créer un répertoire vide

mkdir /home/youruser/remotecomp

3) "lier" les deux répertoires (le bon terme est mount)

sshfs user@server.com:/some/remote/dir /home/youruser/remotecomp

4) profiter

5) "dissocier" les répertoires

fusermount -u /home/youruser/remotecomp

Si l'ordinateur local exécute Windows Vous pouvez trouver des versions de scppour Windows. Voir, par exemple, winscp


Est-il possible de copier le fichier de la machine distante vers la machine locale via "terminal sur la machine distante"? Dans votre cas, vous avez utilisé le terminal sur la machine locale. Je parle d'une situation où la machine locale est Windows et la télécommande est Ubuntu et je suis connecté à la machine distante via SSH.
Chandresh

Généralement pas. Autant que je sache, la copie via "terminal sur une machine distante" signifie que vous avez besoin d'un serveur SSH sur la "machine locale" (je l'ai volontairement ignoré lors de ma réponse, mais "le fait que l'ordinateur distant accepte les connexions SSH" signifie à dire "le fait que l'ordinateur distant
utilise

Cependant, vous pouvez trouver des "clients scp" pour Windows. Voir, par exemple, winscp.net/eng/download.php
josinalvo

J'adore l' sshfsoption
Fibo Kowalsky

Si vous transférez un fichier volumineux, utilisez rsync sur ssh avec rsync -P -e ssh /tmp/file user@example.com:/home/name/dir. En effet, si un transfert de fichier échoue à mi-parcours, scple fichier sera simplement supprimé. D'autre part, si vous utilisez rsyncl' -Poption, cela gardera un fichier incomplet sur la machine distante et, lorsque vous redémarrerez le transfert, vous vous assurerez que ce qui se trouve déjà sur la machine distante correspond au fichier sur votre machine locale. puis continuez là où le transfert s'est arrêté.
Boris

16

Vous pouvez soit utiliser scpou rsync. Dans votre système local:

scp remoteuser@remotehost:/remote/dir/file /local/dir/

Mais puisque vous avez parlé de sauvegarde, je suppose que ce serait incrémental et que vous deviez le faire de temps en temps. Donc, rsyncest un meilleur choix pour la sauvegarde incrémentielle. Sur votre shell local:

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /local/dir/

voir rsync(1)et scp(1)pages de manuel pour les options.


10

Vous pouvez utiliser scp secure copy.

De votre coquille locale:

scp -C username@webhost:/path/of-the/tar.archive /home/mydirectory/backups/

Cet exemple va copier via ssh de /path/of-the/tar.archive de votre hébergeur vers / home / mon répertoire / sauvegardes /

Options supplémentaires:

-C : Permet la compression


6

J'ai eu le même problème. Voici la solution facile: -

  1. Ouvrez Nautilus (l'explorateur de fichiers)
  2. Cliquez sur + Other Locationsen bas du panneau de gauche.
  3. Au fond, il y a une bande Connect to server. Écrivez l'adresse ssh dans la zone de saisie, par exemple ssh://111.222.333.444/.
  4. Entrez votre nom d'utilisateur et votre mot de passe dans la boîte de dialogue qui s'ouvre.
  5. Une fois l’authentification réussie, vous serez à homel’emplacement distant. N'hésitez pas à déplacer le fichier ici et là.

Très bonne réponse! Simple et proche de la réponse à la question, c.-à-d. Comment mv partir de l’ordinateur distant ssh. La réponse est que vous ne pouvez pas, vous le faites à partir de l'ordinateur local. Ou ca! Vous le faites graphiquement à partir de votre explorateur, de sorte qu'au moins, pour l'utilisateur, il semble que vous puissiez déplacer des fichiers directement de distant à local.
Kvothe

2

Les autres réponses recommandent rsyncou scp, les deux nécessitant de connaître l'emplacement du fichier que vous souhaitez copier sur la machine distante.

Si vous voulez plutôt pouvoir vous déplacer sur la machine distante, comme vous le pouvez avec ssh, vous voulez exécuter sftp. Se connecter au serveur est très similaire à ssh, mais une fois que vous y êtes entré , tapez helppour obtenir la liste des commandes - cela vous permet de vous déplacer sur les ordinateurs locaux et distants, et de transférer facilement les fichiers.


1

C'est étrange que c'est impossible de l'intérieur ssh. Dans un terminal classique, il est possible d’envoyer / recevoir des fichiers à l’aide des commandes zmodem.

Cela a aidé à google up zssh: http://zssh.sourceforge.net/ . On devra l'exécuter comme un wrapper à l'original ssh.

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.