18

I'd like to basically pipe a wget command to a file on a remote server over SSH. How can I do this? I know I could simply ssh into the server and have it download the file, but I'd much rather use the local machine to download it and send it.

Naftuli Kay
  • 38,686
  • 85
  • 220
  • 311

1 Answers1

28

So you are logged into a machine myclient and have ssh access to another machine myserver. You want to download a file over HTTP from a remove server www.example.com to myclient but the data needs to be saved on myserver. This should do it:

wget -O - http://www.example.com/whatever | ssh myserver 'cat >/path/to/remote/destination'

Alternatively, you could mount the myserver's filesystem over SSH with sshfs. This may be too much hassle for a one-off need, but convenient if you do this sort of thing often.

mkdir ~/myserver
sshfs myserver:/ ~/myserver
wget -O ~/myserver/path/to/remote/destination http://www.example.com/whatever
Gilles 'SO- stop being evil'
  • 807,993
  • 194
  • 1,674
  • 2,175
  • Yeah, that's exactly what I wanted to do. I needed to run the actual HTTP download on `A`, but copy the file over SSH to `B` without actually storing the file on `A`. Win! – Naftuli Kay Mar 10 '11 at 20:30