Re: I need a windows-linux solution
Bulk File Transfers from Windows to ???
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> I have a Linux machine on a cable modem. That server has a lot of files
> that I need to get to from a Windows machine in another location that is
> on a dsl line. I have tried samba but it is aparently blocked at the
> cable co. I think NFS is open but there is no nfs client that I have
> gotten to work on windows yet I have pcnfs installed on my Debian server
> and my local 95 machine does not attach to it. I have tried ice-nfs and
> omni for client software.
> Is there a way to do this? Is there a problem in doing this? I am at my
> wits end.
> Please help.
> Brian Schramm
The approaches you've attempted so far all related to file sharing
protocols (NFS, SMB). These are normally only used on the LAN or over
VPN or dedicated links. In general you're best approach for a one-time
or any periodic file transfers is to archive the files into one large
file (a tar file for UNIX and UNIX-like systems, a ZIP file for MS-Windows
and MS-DOS systems, a Stuffit or similar file for MacOS boxes). Usually
you'd compress the archive as well (gzip or bzip2 for UNIX/Linux, implicit
for .zip and .sit files).
Once you have the files archived you can use ftp, scp (SSH copy) or
even rsync over ssh to transfer it to the remote system.
Of course this might take a very large amount of temporary file space
(usually at least half of the total size of the originals) at each
end of the connection. If this is a limiting consideration
for your purposes, perhaps burning CDs of the data and shipping them
via snail mail might be the bettern approach.
Under UNIX you can avoid the large temporary copy/archive requirements
at both ends by archiving into a pipeline (feeding the archive data
into a process which transmits the data stream to the remote system)
and by having the remote system extract the archive on-the-fly.
This usually would look something like:
cd $SOURCE && tar czvf - $FILE_DIR_LIST | ssh someone@somehost \
'(cd $DESTINATION && tar xzpf - )'
or possibly like:
ssh someone@somehost '(cd $SOURCE && tar czvf - $FILE_DIR_LIST )' \
| cd $DESTINATION && tar xzpf -
... depending on whether you want to push the files from the local
machine to a remote, or vice versa
For MS-Windows and MS-DOS systems, I have frequently used a Linux boot
floppy (like Tom's Root/Boot at: http://www.toms.net/rb) or a bootable
CD (like Linuxcare's Bootable Business Card --- at:
http://open-projects.linuxcare.com/BBC/index.epl). Basically you boot
them up, mount up their FAT or VFAT filesystems and do your thing --
in those cases I've usually had to use netcat in lieu of a proper
ssh tunnel; but that's just laziness.
Here's a sample script I use to receive a system backup from
a Windows '98 Point of Sale system (which I call "pos1" in by
backup file.
``
#!/bin/sh
ifconfig eth0 172.17.17.1 netmask 255.255.255.0 broadcast 172.17.17.255
nc -v -v -n -w 6000 -p 964 -l 172.17.17.2 964 -q 0 \
| bzip2 -c > $( date +%Y-%m-%d )-pos1.tar.bz2
## cp /etc/resolv.conf.not /etc/resolv.conf
sync
''
I run this on one system, and then I go to the other system,
boot it, configure the network to the ...2 address; as referenced
in my nc command above, mount my local filesystems (the C: and D: drives
under MS-DOS; create a mbr.bin file using dd if=/dev/hda of=/mnt/mbr.bin
count=1 bs=512) and feed the receiver with:
tar cBf - . | nc -p 964 172.17.17.1
(nc is the netcat command).
If I had to manage any Win2K or NT systems I'd probably just install
the Cygwin32 tool suite and see if I could use these same tools
(tar, nc, ssh, etc) natively). Obviously MacOS X should probably
have these tools already ported to it; so similar techniques should
work across the board.
--
Jim Dennis
Reply to: