190 lines
7.7 KiB
HTML
190 lines
7.7 KiB
HTML
<!--startcut ==========================================================-->
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<title>Back-up Using rdist LG #29</title>
|
|
</HEAD>
|
|
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
|
|
ALINK="#FF0000">
|
|
<!--endcut ============================================================-->
|
|
|
|
<H4>
|
|
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
|
</H4>
|
|
|
|
<P> <HR> <P>
|
|
<!--===================================================================-->
|
|
|
|
<center>
|
|
<H2><font color="maroon">Using rdist for Backups</font></H2>
|
|
<H4>By <a href="mailto:johnny@dvc.org.uk">John Pate</a></H4>
|
|
</center>
|
|
<P> <HR> <P>
|
|
|
|
|
|
In <STRONG>Linux Gazette</STRONG> Issue number 24 <STRONG>Gerd
|
|
Bavendiek</STRONG> described his script which he calls "mirror." In this
|
|
script he makes use of the utility 'rdist' which is widely available on
|
|
Unix systems. In my article I shall explain how I use 'rdist' which
|
|
I hope will give the beginning Linux user a background to Gerd's article
|
|
and show how useful 'rdist' is to those with multiple computers (which
|
|
should be every Linux user nowadays!)
|
|
|
|
<P>
|
|
|
|
In the UK today you can get a complete 486DX66 system including monitor
|
|
for a hundred pounds, which has got to be a bargain and ideal as a backup
|
|
system for your "main" computer. Even if you feel its hard disk is too
|
|
small (typically they have them in the 200-300meg range) today you can
|
|
get a 2gig hard disk for under one hundred pounds or an 850meg one for
|
|
sixty pounds. So for no more than a couple of a hundred pounds you not
|
|
only have a backup device but a working computer you can use in emergency
|
|
in the event of the failure of your "main" machine. I have two 486DX66s,
|
|
both other peoples' discards which cost me nothing apart from extra RAM
|
|
and a bigger hard disk for the "main" machine (and a modem of course -
|
|
though now I have a couple of spare V32bis other people have junked,
|
|
isn't progress wonderful). One has 40meg of RAM and is my "main" computer
|
|
running Slackware 3.3. The other has 8meg of RAM and Slackware 3.3 again.
|
|
The "backup" has a half gig hard disk given to me because it makes an
|
|
unpleasant whine during operation. In spite of the noise, the disk
|
|
works fine so is good for backup space. A couple of discarded network
|
|
cards from a "parts bin" and a look at the <STRONG>NET-3-HOWTO</STRONG>
|
|
(you can find this in the directory '/usr/doc/faq/howto' in Slackware 3.3)
|
|
gets the two computers talking to each other. Other alternatives are PLIP
|
|
or a null modem cable, but network cards are easy to come by nowadays.
|
|
(Note: network cards with RJ45 interfaces can connect two computers
|
|
together if you make a crossover cable, it works for me.)
|
|
|
|
<P>
|
|
|
|
Once the computers are talking you can use ftp or even Samba to
|
|
transfer files, as well as mounting various drives and partitions
|
|
by NFS. All good clean fun. But the ideal way to maintain a "mirror"
|
|
of your home directories so you don't lose any precious datafiles is
|
|
to use 'rdist'. (Note: the following describes a Slackware 3.3 setup
|
|
but the procedure should give the rest of you a start.) Firstly you
|
|
must amend the file 'hosts.equiv' on the "backup" machine (i.e. the
|
|
one you are going to back-up the files to) to allow users to 'rlogin'
|
|
(see the man page for 'rlogin') to the "backup" computer from the "main"
|
|
computer without having to supply a password. 'hosts.equiv' is found in
|
|
'/etc' (Slackware), the stock 'hosts.equiv' has one entry, 'localhost'.
|
|
Simply add the relevant name or IP address for your "main" computer (go
|
|
back and read the <STRONG>NET-3-HOWTO,</STRONG> you know you have to)
|
|
on a new line. If you have accounts (same user name) on both machines,
|
|
you are now able to 'rlogin' to the "backup" from the "main" with the
|
|
command 'rlogin <other_computer_name>' and it should not
|
|
demand a password (unless you are 'root', but you don't want to mess
|
|
around letting 'root' rlogin without a password, do you?).
|
|
|
|
<P>
|
|
|
|
Now you're cooking with gas. Make a file called 'distfile' in your
|
|
home directory on your "main" computer. Here's one I made earlier--
|
|
|
|
<P>
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
<PRE>
|
|
|
|
HOSTS = ( johnny@pod )
|
|
FILES = ( ~/ )
|
|
EXCEPT = ( ~/.netscape ~/\(PROG\) ~/StarOffice-3.1 ~/.trash ~/.bash_history )
|
|
|
|
${FILES} -> ${HOSTS}
|
|
install -oremove,chknfs,younger ;
|
|
except ${EXCEPT} ;
|
|
|
|
</PRE>
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
<P>
|
|
|
|
Now's the time for you to consult 'man rdist' to see what all this means.
|
|
The first three lines set variables - it is possible to give 'rdist'
|
|
command line switches to modify these, so it could be helpful when you
|
|
get more adventurous. The last three lines are commands for 'rdist'.
|
|
The 'install' command copies/deletes files/directories as specified.
|
|
The 'except' command omits the specified files/directories from
|
|
processing. (If you specify a directory it means that directory's
|
|
files and subdirectories and files.) The '->' line tells it what to
|
|
where. Note the 'host' is the "backup" computer and given of the form
|
|
'user@domain'. This should be an account you can 'rlogin' to without
|
|
needing a password (modify 'hosts.equiv' see above). If you look at
|
|
the above example, it says,
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
"Copy the entire home directory to "pod," excepting the Netscape cache
|
|
directory, the trash directory, the StarOffice stuff and the .bash_history
|
|
file."
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
The switches to 'install' say,
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
"Remove any files on the backup that aren't on the main machine,
|
|
don't follow through NFS links, and don't update files on the backup
|
|
machine that are younger than the equivalent on the main machine."
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
<STRONG>Note</STRONG> how 'remove'and 'younger' interact: 'remove'
|
|
will remove any orphan files, so 'younger' won't keep brand new files
|
|
on the backup that haven't been made on the main machine - decide what
|
|
you want! In the case of a backup to an account you don't use then
|
|
'younger' isn't really necessary. If it's an account you do use, then
|
|
don't use 'remove' but do use 'younger'.
|
|
|
|
<P>
|
|
|
|
A perusal of the 'rdist' man page should make this all clear. Having made
|
|
the 'distfile,' all you have to do to synchronize the files on your
|
|
two machines is type 'rdist' at the prompt on the "main" machine and
|
|
it will go ahead and do it all for you and tell you about it. 'rdist'
|
|
will create directories as needed, preserve permissions, ownerships etc.,
|
|
will only change files that don't match (you can alter the criteria it
|
|
uses to decide this, see the 'man' page). It is excellent! Run 'rdist'
|
|
regularly and you need never "lose" your data-files. Even better if
|
|
you back-up over the Internet to a remote location.
|
|
|
|
<P>
|
|
|
|
Now you can go back to <A HREF="../issue24/bavendiek.html">Gerd's
|
|
article</A> and see how he uses his script to keep his laptop and desktop
|
|
in synch. A study of the 'rdist' man page will make evident that 'rdist' has
|
|
great power and flexibility for the adventurous. There really is no
|
|
excuse for not backing up your work!
|
|
|
|
<P>
|
|
|
|
<hr>
|
|
<address><a href="mailto:johnny@dvc.org.uk">John Pate</a></address>
|
|
|
|
<!-- hhmts start -->
|
|
Last modified: Sat May 2 12:25:18 BST 1998
|
|
<!-- hhmts end -->
|
|
|
|
<!--===================================================================-->
|
|
<P> <hr> <P>
|
|
<center><H5>Copyright © 1998, John Pate <BR>
|
|
Published in Issue 29 of <i>Linux Gazette</i>, June 1998</H5></center>
|
|
|
|
<!--===================================================================-->
|
|
<P> <hr> <P>
|
|
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
|
ALT="[ TABLE OF CONTENTS ]"></A>
|
|
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
|
ALT="[ FRONT PAGE ]"></A>
|
|
<A HREF="./hughes.html"><IMG SRC="../gx/back2.gif"
|
|
ALT=" Back "></A>
|
|
<A HREF="./lg_backpage29.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
|
<P> <hr> <P>
|
|
<!--startcut ==========================================================-->
|
|
</BODY>
|
|
</HTML>
|
|
<!--endcut ============================================================-->
|