In SSH, come mv al mio sistema locale?


129

Sono sshentrato nella directory del mio webhost e ho tarscaricato la webapp. Quando provo a mvper ~/mydirectory/backupso /home/mydirectory/backups, definisce la "casa" come il mio principale del hosting che sto ssh'ed in.

Come mv in ssh su un disco locale mentre sono ancora all'interno del sistema del webhost?


Da quale sistema operativo ti connetti?
Zoredache,

Risposte:


181

Per prima cosa: ssh è un modo per accedere in remoto a un altro computer. La shell (riga di comando) che ottieni dopo che ssh è (praticamente) la stessa di se avessi aperto un xterm nel computer remoto. Se non offre alcun modo per spostare i file.

Tuttavia, il fatto che il computer remoto accetti connessioni ssh offre alcune opzioni per lo scambio di file:

Usa scp Per copiare dal tuo computer locale al telecomando, digita, nel computer locale:

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

(dove / tmp / file può essere sostituito con qualsiasi file locale e / home / name / dir con qualsiasi directory remota)

Per copiare dal computer remoto a quello locale, digitare, nel computer locale :

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

Usa sshfs Questo è un po 'più avanzato ma molto, molto più bello (quando la connessione a Internet di entrambi i computer è buona. In caso contrario, attenersi a SCP)

È possibile "collegare" una directory dal computer remoto a una directory (vuota) del computer locale. Supponi di "collegare" il / some / remote / dir dal computer remoto a / home / youruser / remotecomp nel tuo computer. Se c'è un file / alcuni / remoto / dir / file nel computer remoto, puoi vederlo su / home / tuoutente / remotecomp / file. Puoi copiare e mv come al solito, e puoi anche modificare file e directory remoti.

Nota comunque che quando termina la connessione / home / youruser / remotecomp diventa di nuovo una directory vuota e mantieni nel computer locale solo i file che hai copiato in altre directory

Per realizzare questo:

1) installa sshfs:

sudo apt-get install sshfs

2) creare una directory vuota

mkdir /home/youruser/remotecomp

3) "collega" le due directory (il termine giusto è mount)

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

4) Divertiti

5) "scollega" le directory

fusermount -u /home/youruser/remotecomp

Se il computer locale esegue Windows È possibile trovare le versioni di scpWindows. Vedi, ad esempio, winscp


Esiste un modo per copiare il file dal computer remoto al computer locale tramite "terminale sul computer remoto"? Nel tuo caso, hai utilizzato il terminale sul computer locale. Sto parlando di una situazione in cui la macchina locale è Windows e remoto è Ubuntu e sono connesso al computer remoto tramite SSH.
chandresh,

Di solito no. Per quanto ne so, copiare tramite "terminale nella macchina remota" significa che è necessario un server SSH nella "macchina locale" (l'ho ignorato di proposito durante la mia risposta, ma "il fatto che il computer remoto accetta connessioni ssh" è inteso per dire "il fatto che il computer remoto esegue un server SSH")
josinalvo,

Tuttavia, è possibile trovare "client scp" per Windows. Vedi, ad esempio, winscp.net/ita/download.php
josinalvo,

Adoro l' sshfsopzione
Fibo Kowalsky

Se stai trasferendo un file di grandi dimensioni, usa rsync su ssh con rsync -P -e ssh /tmp/file user@example.com:/home/name/dir. Questo perché se un trasferimento di file non riesce a metà strada, scpeliminerà semplicemente il file. D'altra parte, se si utilizza rsynccon l' -Popzione, manterrà un file incompleto sul computer remoto e quando si riavvia il trasferimento, si assicurerà che ciò che è già sul computer remoto corrisponda al file sul computer locale e quindi continua da dove era stato interrotto il trasferimento.
Boris,

16

Puoi usare scpo rsync. Nel tuo sistema locale:

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

Ma, dal momento che hai citato il backup, suppongo che sarebbe incrementale e dovrai farlo ogni tanto. Quindi, rsyncè una scelta migliore per il backup incrementale. Sulla tua shell locale:

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

vedere rsync(1)e scp(1)pagine man per le opzioni.


10

Puoi usare scp secure copy.

Dalla tua shell locale:

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

Questo esempio verrà copiato tramite ssh da /path/of-the/tar.archive del tuo host web in / home / mydirectory / backups /

Opzioni extra:

-C : abilita la compressione


6

Ho avuto lo stesso problema. Ecco la soluzione semplice: -

  1. Apri nautilus (il file explorer)
  2. Fai clic su + Other Locationsnella parte inferiore del riquadro di sinistra.
  3. In fondo c'è una striscia Connect to server. Scrivi l'indirizzo ssh nella casella di input come ssh://111.222.333.444/.
  4. Inserisci il tuo nome utente e password nella finestra di dialogo che si aprirà.
  5. In caso di autenticazione riuscita, ti troverai in homeuna posizione remota. Sentiti libero di spostare il file qua e là.

Bella risposta! Semplice e più vicino a una risposta alla domanda reale, ovvero come mv dall'interno del computer remoto ssh. La risposta è che non puoi, lo fai dal computer locale. O questo! Lo fai graficamente dal tuo esploratore in modo che almeno all'utente sembri davvero che puoi spostare i file direttamente da remoto a locale.
Kvothe

2

Le altre risposte raccomandano rsynco scp, entrambe richiedono di conoscere la posizione del file che si desidera copiare sul computer remoto.

Se invece vuoi essere in grado di curiosare sul computer remoto, come puoi con ssh, vuoi correre sftp. Accedere al server è molto simile ssh, ma una volta entrato , digita helpper ottenere l'elenco dei comandi: ti consente di spostarti sia su macchine locali che remote e trasferire facilmente i file avanti e indietro.


1

È strano che sia impossibile dall'interno ssh. In un terminale normale, si potrebbero inviare / ricevere file usando i comandi zmodem.

Ciò ha contribuito a migliorare Google zssh: http://zssh.sourceforge.net/ . Uno dovrà eseguirlo come un wrapper per l'originale ssh.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.