Given two Linux boxes on a LAN, what's the simplest way to transfer files between them?
scp source desthost:/path/to/dest/.
to copy from the local machine to the remote machine, or
scp srchost:/path/to/file/file .
to copy from a remote machine to the local machine.
If the username is not the same on the remote machine,
scp user@srchost:/path/to/file/file .
I usually mount a directory through ssh via FUSE and sshfs.
$ sshfs name@server:/path/to/dir /path/to/mount/point
$ fusermount -u /path/to/mount/point
I use netcat (if I don't need security)
nc -l -p 1234 < send_file # 'server' nc x.y.z.t 1234 > receive_file # 'client'
nfs could be useful.
The Network File System (NFS) allows a client node to perform transparent file access over the network. By using NFS, a client node operates on files residing on a variety of servers and server architectures, and across a variety of operating systems. File access calls on the client (such as read requests) are converted to NFS protocol requests and sent to the server system over the network.
You might require help from your Unix Admin to setup it first time but its very useful.
For doing backups I often use rsync. If I want to backup onto a remote machine I'll put a line in /etc/fstab to keep the remote machine mounted by NFS or CFIS (Samba).
192.168.0.101:/ /mnt/backup nfs rsize=8192,wsize=8192,timeo=14,intr 0 0
Then have a line in my crontab using rsync.
rsync -av /home/user/sourcedir/ /mnt/backup/destinationdir > /home/user/backup.log
netcat is simple but not all versions close connection reliably.
Here is thread about using
socat reliable file transfer over TCP
To sum it up:
Server sending file:
server$ socat -u FILE:test.dat TCP-LISTEN:9876,reuseaddr client$ socat -u TCP:127.0.0.1:9876 OPEN:out.dat,creat
Server receiving file:
server$ socat -u TCP-LISTEN:9876,reuseaddr OPEN:out.txt,creat && cat out.txt client$ socat -u FILE:test.txt TCP:127.0.0.1:9876
OPEN:out.txt,creat,truncwill delete all the bytes in
out.txtbefore writing to it. This option mimics what you'd expect from
cp, and is probably what you want.
OPEN:out.txt,creat,exclwill refuse to write
out.txtif it already exists. Use this option for extra safety.
OPEN:out.txt,creat,appendwill append data to
Giver is a simple file sharing desktop application. Other people running Giver on your network are automatically discovered and you can send files to them by simply dragging the files to their photo or icon shown in Giver.
sudo apt-get install giver
If you do not have an account (password) on the receiving host you can use woos (web offer one stream):
woos file-or-directory ...