Resume recursive scp transfer (with rsync?)

I was transferring several thousand files each ~1MB via scp and my connection was broken after the first 2k files or so. I wanted to know if there was a way to resume the recursive transfer w/o starting over. Something like

$ scp -r [email protected]:/datafiles/ ./
... Happy Transfer ...
...     BREAK!     ...
$ rsync -P [email protected]:/datafiles/ ./
... Continue transf...

The problem is I can't seem to get the syntax correct if it is possible. Can anyone shed some light on if/how it can be done?

PS. If you specify the slash after "datafiles" in the rsync line, does that transfer the directory or its contents? I saw conflicting comments when I googled.


Solution 1:

if you are rsyncing from a local machine to a remote host, this would work:

rsync -avzl -e ssh /directory/with/files/ [email protected]:/new/directory/

Solution 2:

The following line should do the trick for that:

rsync --partial --progress --rsh=ssh -r [email protected]:/datafiles/ ./

I've never used this for recursive directories before, but when I texted it just now it seemed to work as expected.