ssh file transfers - how to?

joseph kacmarcik freebsd-questions at chubbo.net
Sun Jan 9 19:34:48 PST 2005


> For purposes of discussion, I'm logged into the distant machine
> as jay at distantmachine.net. I'm logged in to the directory /www/jay
> and my localmachine directory (now empty) is /home/www/jay. I want
> everything in the www/jay directory on distantmachine to be copied
> as the home/www/jay directory on localmachine.

this depends whether you want a backup or if you want to have a live copy, there
are a few ways (more on that later).

for a backup, you could (test first please):
ssh remotehost "tar cf - /www/jay" > /path/to/tarfile

or for live copy, two methods would be:
ssh remotehost "tar cf - /www/jay" | tar -C /home/www/jay -xf -
scp -pr remotehost:/www/jay /home/www/jay

> My follow-on question is -- Is there a way to synchronize the local
> machine with the distant machine if changes are made on the distant
> machine, and vice-versa, on a generic basis, i.e. "distantmachine
> is now the master, correct localmachine to agree"?

if you're trying to get a working copy and not backup, use rsync. this would be
much easier, and it's easy to make it bi-directional (or more).

there are many ways to do this, one is:
rsync -azvprt -e ssh [user]@remotehost:/www/jay /home/www

you could use -n and --progress when you're doing the debugging getting it right
for your situation and environment.

you'll still be transporting over ssh, but IMO rsync is a better choice.

good luck!
joe


More information about the freebsd-questions mailing list