I ssh
-ed into my webhost's directory, and tar
-ed the webapp to download. When I try to mv
to ~/mydirectory/backups
or /home/mydirectory/backups
, it defines the "home" as my root on the webhost that I'm ssh'ed into.
How do I mv in ssh to a local drive while still being inside the webhost's system?
First things first: ssh is a way to remotely login to another computer. The shell (command line) you get after you ssh is (pretty much) the same as if you had opened a xterm in the remote machine. If offers no such way to move files.
However, the fact that the remote computer accepts ssh connections gives you some options to exchange files:
Use scp To copy from your local computer to the remote, type, in the local computer:
scp /tmp/file [email protected]:/home/name/dir
(where /tmp/file can be replaced with any local file and /home/name/dir with any remote directory)
To copy from the remote computer to the local one, type, in the local computer:
scp [email protected]:/home/name/dir/file /tmp
Use sshfs This is a little more advanced but much, much nicer (when the internet connection of both computers is good. If not, stick to scp)
You can "link" a directory from the remote computer to an (empty) directory of the local computer. Say you "link" the /some/remote/dir from the remote computer to /home/youruser/remotecomp in your computer. If there is a file /some/remote/dir/file in the remote computer, you can see it on /home/youruser/remotecomp/file. You can copy and mv as usual, and you can even alter remote files and dirs.
Note however, that when the connection ends, /home/youruser/remotecomp becomes an empty dir again, and you only keep in the local computer the files you copied to other directories
To achieve this:
1) install sshfs:
sudo apt-get install sshfs
2) create a empty dir
mkdir /home/youruser/remotecomp
3) "link" the two directories (the right term is mount)
sshfs [email protected]:/some/remote/dir /home/youruser/remotecomp
4) Enjoy
5) "unlink" the dirs
fusermount -u /home/youruser/remotecomp
If the local computer runs windows You can find versions of
scp
for windows. See, e.g, winscpYou can either use
scp
orrsync
. In your local system:scp remoteuser@remotehost:/remote/dir/file /local/dir/
But, since you mentioned backup, I assume that it would be incremental and you'll need to do it every now and then. So,
rsync
is a better choice for incremental backup. On your local shell:rsync -avz -e ssh remoteuser@remotehost:/remote/dir /local/dir/
see
rsync(1)
andscp(1)
man pages for options.You could use scp secure copy.
From you local shell:
This example will copy via ssh from /path/of-the/tar.archive of your webhost to /home/mydirectory/backups/
Extra options:
-C: Enables compression
I had the same problem. Here's the easy solution:-
+ Other Locations
at bottom of left panel.Connect to server
. Write the ssh address in the input box such asssh://111.222.333.444/
.home
of remote location. Feel free to move file here and there.The other answers recommend
rsync
orscp
, both of which require you to know the location of the file you want to copy on the remote machine.If you instead want to be able to poke around on the remote machine, like you can with
ssh
, you want to runsftp
. Logging into the server is very similar tossh
, but once you get in, typehelp
to get the list of commands - it lets you move yourself around on both the local and remote machines, and transfer files back and forth easily.It's strange to that it's impossible from inside
ssh
. In a regular terminal, one could send/receive files using zmodem commands.This helped to google up
zssh
: http://zssh.sourceforge.net/. One will have to run it as a wrapper to originalssh
.