Do you have a laptop ? And want frequently to copy files to another system ? Use mirror !
I frequently have to exchange files between my laptop and other
systems, eg. my home desktop. This can be conveniently done
using rdist(1)
.
I wrote a small script called mirror
, which
basically contains a call of rdist setting up a small
Distfile
using the shell's here syntax:
rdist -d PWD=`pwd` -f - << EOF ${PWD} -> mirror install -oyounger ${PWD}; except_pat ( ~\\$ ); EOF
This is not the place to deal with rdist
-syntax
in greater detail, so see rdist
's-manpage, if you
like. Files will be copied to host mirror
. Of
course you have to set up /etc/hosts
appropiately.
So working on a project with files in ~/wsp/pbd/os-tools
,
I can simply say
nana:/home/bav/wsp/pbd/os-tools> mirror mirror: updating host mirror mirror: /home/bav/wsp/pbd/os-tools/main-window.tcl: updating mirror: /home/bav/wsp/pbd/os-tools/os-tools.tcl: updating mirror: /home/bav/wsp/pbd/os-tools/popups.tcl: updating mirror: updating of mirror finishedand
mirror
will copy new or changed files to the very same directory on
the other node. This will be done recursively. Files on the
other node, which are younger than the files on the node I
started mirror
on, will be mentioned, but remain
untouched. Emacs-backup-files will not be copied.
Using the Option -verify
, you can check what will be done
without really doing anything:
nana:/home/bav/wsp/pbd/os-tools> mirror -verify mirror: updating host mirror mirror: /home/bav/wsp/pbd/os-tools/os-tools.tcl: need to update mirror: /home/bav/wsp/pbd/os-tools/popups.tcl: need to update mirror: updating of mirror finished
The option -f
will remove extraneous files on node
mirror
. This is useful to get a real mirror:
nana:/home/bav/wsp/pbd/os-tools> mirror -f mirror: updating host mirror mirror: lulu: /home/bav/wsp/pbd/os-tools/qqq: removed mirror: lulu: /home/bav/wsp/pbd/os-tools/otto: removed mirror: /home/bav/wsp/pbd/os-tools/main-window.tcl: updating mirror: /home/bav/wsp/pbd/os-tools/popups.tcl: updating mirror: updating of mirror finished
Besides mirroring to another system's disk mirror
can be used to mirror the current directory to a floppy. This
comes in handy for a quick kind of backup. There is no real
advantage of using rdist
when operating locally.
If there is enough space available, I use cp with the options
-ruvp
. To do so, call mirror
with the option
-floppy
:
nana:/home/bav/wsp/pbd/os-tools> mirror -floppy ./main-window.tcl -> /floppy/./main-window.tcl ./os-tools.tcl -> /floppy/./os-tools.tcl ./popups.tcl -> /floppy/./popups.tclAs with rdist, only new or changed files are copied. Mounting and unmounting the floppy is done by the script. Right now there is no way of handling extraneous files implemented.
In case you like this ideas, you can find my mirror-utility here.