Moving files to a Linux box

This entry was posted by on Thursday, 13 October, 2011 at

Moving files to (and from) a GNU/Linux box is trivial for those well-seasoned in the use of the commandline. For Mac or windows users who need to make use of a Linux box (read my article on Clustercomputing with Torque) this may be the first problem they encounter. Easily overcome, though tough if you don’t know how it works.

First: you’ll need an account on the machine you want to copy your files to (“destination”). Obviously, you may also need an account on the machine where the files come from (“source”).

wget

Probably the easiest way is using wget to perform an HTTP GET operation (which is what your webbrowser does when you type the url). On the Linux box (“destination”), do:

wget http://mymachine.mydomain.edu/stuff/code.tar.gz

And the file code.tar.gz will be downloaded in the current directory. This way you can, for instance, get the omnetpp distro from omnetpp.org:

wget http://www.omnetpp.org/omnetpp/doc_download/2217-omnet-41-source--ide-tgz

sftp

Point an sftp-capable browser to sftp://destination:/home/myhomedir on the “source” and you can simply drag’n’drop your files. This requires a shell-account on the destination machine.

scp

Using the Secure Shell server, you can securely copy files:

scp myfiles.tar.gz username@destination:/home/myhomedir

To get your file from here to the destination.

scp username@destination:/home/myhomedir/myfiles.tar.gz .

To get your file from the destination to your local computer.

rsync

Where scp simply copies (and overwrites, so beware!), rsync will only copy the difference which can be a lot faster (and generate less traffic). You can push from “source” to “destination” or pull from “destination” to “source”, and there are a gazillion options.

check this article

FUSE: sshmount

You can mount a directory on destination locally on your source (or vice-versa if you have appropriate privileges).

ftp

If the destination runs an ftp server, you can upload it. Obviously, if the source runs an ftp server you can download it.

curlftp

If the destination runs an ftp server, you can mount it using curlftp.

check this article

Samba

If the destination runs a CIFS/SMB server (with appropriately configured ‘upload’ directory) you can simply point your browser to smb://destination (or \\destination in windows explorer, OS X will automatically detect it and show it in the ‘places’).

NFS

Files on an NFS server are easily accessible by mounting the NFS server. You can then treat it as a local directory. NFS needs to explicitly ‘export’ a resource to a target machine, so this is not an option if you have no control over the other machine.

Git, SVN, etc.

Of course, you can also use the wide variety of Concurrent Versioning Systems out there.

Conluding remarks

If anyone has any alternatives or comments, I would be glad to hear of them and I’ll include them in this list. Needless to say, GNU/Linux gives you a lot of options – if one doesn’t work, simply use the other 🙂

Trackbacks/Pingbacks

  1. Clustercomputing with Torque @ Freeminded.org

Leave a Reply