Unison is a file-synchronization
tool for Unix and Windows. It allows
two replicas of a collection of files
and directories to be stored on
different hosts (or different disks on
the same host), modified
separately, and then brought up to
date by propagating the changes in
each replica to the other.
It lets you specify directories to sync - these will be the folders you want to cache. You can also finely control the direction of sync. It will not auto-run when you connect to the drive. You'll need to trigger that yourself, depending on the Linux distro you run and how you/it connects to the remote drive. e.g if you use the mount command, wrap it in a script that calls unison after the mount. There's a brief write-up of how to use it on the Ubuntu community documentation site.
Unison is a command-line tool that also has a GUI of the same name. If you're on Ubuntu, both packages are included in the universe but not installed by default.
$sudo apt-get install unison unison-gtk
It is also available for the Mac via ports (Fink, Macports etc).
* Unison runs on both Windows (95, 98, NT, 2k, and XP) and Unix
(OSX, Solaris, Linux, etc.) systems. Moreover, Unison works across
platforms, allowing you to synchronize a Windows laptop with a
Unix server, for example.
* Unlike a distributed filesystem, Unison is a user-level program:
there is no need to modify the kernel or to have superuser
privileges on either host.
* Unlike simple mirroring or backup utilities, Unison can deal with
updates to both replicas of a distributed directory structure.
Updates that do not conflict are propagated automatically.
Conflicting updates are detected and displayed.
* Unison works between any pair of machines connected to the
internet, communicating over either a direct socket link or
tunneling over an encrypted ssh connection. It is careful with
network bandwidth, and runs well over slow links such as PPP
connections. Transfers of small updates to large files are
optimized using a compression protocol similar to rsync.
* Unison has a clear and precise specification, described below.
* Unison is resilient to failure. It is careful to leave the
replicas and its own private structures in a sensible state at all
times, even in case of abnormal termination or communication
* Unison is free; full source code is available under the GNU Public