[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Beginner's tip for transferring large directories between systems when sshd not allowed (e.g. between VMWare host and guest)



Here's a tip that might come in handy when
transferring large directory trees between systems
where running sshd isn't allowed.

I use vmware occasionally, and when I do, I sometimes need
to transfer large directory trees between the host and guest.
The corporate Linux laptop I'm using doesn't allow
running sshd, so scp (or, better, tar -f - foo | ssh blah cat)
isn't an option.

Instead, I used nc and ufw to create a one-time hole and suck the data
through:
  $ ip addr
... 192.168.0.100 ...
  $ sudo ufw allow 5001
  $ nc -l -p 5001 > foo.tgz
on Linux, and
  $ ip addr
  $ tar -czf - --exclude=.svn src | nc 192.168.0.100 5001
then finally
  $ sudo ufw delete allow 5001
on Linux again after the transfer is finished.
You can monitor the transfer by doing
  $ ls -lh foo.tgz
on the linux side periodically, or
  $ watch ls -lh foo.tgz
to show the tarball's size every two seconds.
Works nicely, has a smaller vulnerability footprint than
running sshd, and avoids the extra disk I/O of the simple
"tar it and then scp the tarball" approach.
- Dan

p.s. here's my current reason to want to do this:
I work on the Chromium web browser, and am interested
in reducing the number of proprietary tools we use to
develop it.  In particular, I'm experimenting with
using linux + valgrind + wine instead of windows + purify
to look for pointer problems in our Windows version.
(We already use valgrind to do the same for our Linux and Mac
versions.)
Chromium can't yet be built with mingw,
so I need to build Chromium on Windows in vmware with
visual studio, and transfer the tree to Linux.

Valgrind requires one patch to support .pdb files.  I don't
think the patch has been committed yet, but it's
available if anyone's interested.  (Thanks to everyone
who worked on that patch and on valgrind and wine
in general, btw.)


Reply to: