NetAdminTools.com
 
SignalQ Sites:
NetAdminTools - Coprolite - NoNIC - SpotBridge - NAW
RoboCoop - AreWeDown - SolarPower - SysAdminTools
Xfig - Gold Loaf - GeekPapa - FixGMC - MCJ - FixRambler
Categories:
GNU/Linux | Homebrew designs | Perl | Administration | Backup/Recovery | Bugs/Fixes | Certification | Database | Email | File/Print | Hardware | Information Grab Bag | Interoperability | GNU/Linux ABCs | Monitoring | Name Resolution | Network Services | Networking | Remote Control | Security | Desktop | Web | BSD | Solaris | GIAGD | REALbasic

Last 30 Days | Last 60 Days | Last 90 Days | All Articles | RSS | Hail Support


Categories:
·GNU/Linux
·Homebrew designs
·Perl
·Administration
·Backup/Recovery
·Bugs/Fixes
·Certification
·Database
·Email
·File/Print
·Hardware
·Information Grab Bag
·Interoperability
·GNU/Linux ABCs
·Monitoring
·Name Resolution
·Network Services
·Networking
·Remote Control
·Security
·Desktop
·Web
·BSD
·Solaris
·GIAGD
·REALbasic
·All Categories


Nightly Mirroring via Rsync
Topic: Backup/Recovery   Posted:2003-01-14
Printer Friendly: Print

spacerspacer
In this article we showed how to use rsync to mirror a website. Well, rsync can also be used to provide a lukewarm recovery system. On this workstation, the root filesystem is on /dev/hda3, and we will mirror it to /dev/sda3, which we have mounted on /mnt. If you don't have rsync, grab rsync from here, compile and install:

# tar -xzf rsyn*.gz
rsync-2.5.5]#
rsync-2.5.5]# ./configure --prefix=/usr
configure: Configuring rsync 2.5.5
checking build system type... i686-pc-linux-gnu
rsync 2.5.5 configuration successful
.
.
.
rsync-2.5.5]# make
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -c rsync.c -o rsync.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -c generator.c -o generator.o
generator.c: In function `recv_generator':
rsync-2.5.5]# make install

Let's try a test rsync:

# rsync -avz --delete  --exclude  "/share/" 
--exclude "/mnt/" / /mnt
wrote 3640351862 bytes  read 1463556 bytes  1971212.68 bytes/sec
total size is 5732809242  speedup is 1.57
rsync error: partial transfer (code 23) at main.c(578)

The partial transfer error here is because we are transferring /proc, which is silly, because proc will be built at run-time. Let's exclude proc and run again:

# rsync -avz --delete  --exclude  "/share/" --exclude "/mnt/"
--exclude "/proc/" / /mnt
building file list ... done
.
.
.
wrote 4817639 bytes  read 628 bytes  143828.87 bytes/sec
total size is 4795536117  speedup is 995.28
#

The --delete option deletes the files that don't exist on the source from the target. Now, let's try out our new recovery system. Now would be a good time to make a recovery diskette and test it with both root partitions. See Bull-Headed Booting for tips on making a boot diskette. For our purposes, though, putting another entry in lilo.conf is just fine. If you have grub, the general idea is similar. Be careful that you know what bootloader you are using!! We happen to be using lilo. Here is our original lilo.conf:

prompt
timeout=50
default=linux
boot=/dev/hda
map=/boot/map
install=/boot/boot-menu.b
image=/boot/vmlinuz-2.4.20
label=linux
root=/dev/hda3
read-only

Let's add a section. Be careful to not make the recovery section default, or you might accidentally boot your recovery system and not know it:

prompt
timeout=50
default=linux
boot=/dev/hda
map=/boot/map
install=/boot/boot-menu.b
image=/boot/vmlinuz-2.4.20
label=linux
root=/dev/hda3
read-only
image=/boot/vmlinuz-2.4.20
label=recovery
root=/dev/sda3
read-only

Run lilo when finished:

# lilo
Warning: LBA32 addressing assumed
Added linux *
Added recovery
#

Reboot, and test the new root filesystem out. To wrap this up and make all happy, we created an /rsyncmnt directory, and added a crontab entry: 0 0 * * * umount /dev/sda3;mount -t ext3 /dev/sda3 /rsyncmnt;/usr/bin/rsync -avz --delete --exclude "/share/" --exclude "/mnt/"--exclude "/mnt2/" --exclude "/rsyncmnt/" --exclude "/proc/" / /rsyncmnt;umount /rsyncmnt. With this crontab entry, first we unmount anything on /dev/sda3, then we mount rsyncmnt. On the rsync command, notice that we are excluding the other mount points like share, mnt, and mnt2 that we use. If you don't exclude rsyncmnt, heheh, you will rsync the stuff that rsyncs. Nasty business. We then unmount /rsyncmnt. The job will run at midnight every night.




Please read our Terms of Use
Microsoft, Windows, Windows XP, Windows 2003, Windows 2000, and NT are either trademarks or registered trademarks of Microsoft Corporation. NetAdminTools.com is not affiliated with Microsoft Corporation. Linux is a registered trademark of Linus Torvalds, and refers to the Linux kernel. The operating system of most distributions that contain the Linux kernel is GNU/Linux. All logos and trademarks in this site are property of their respective owner. Copyright 1997-2008 NetAdminTools.com

Created by:
MCJ
MCJ CMS