#!/bin/sh
#
# Make backups of Windows machine at target.home
#
# Full backup goes into /backup/target/full/
# Inrementals go into /backup/target/<dayofweek>
#
# Based on a script by tridge@linuxcare.com
#
# Written by Brian C. Lane <bcl@brianlane.com>
#
if /usr/bin/lockfile -r1 /var/lock/target_inc
then
# Mount the shared drives, exiting on errors
mount -t smbfs //target/C /mnt/target/C -o ro,password=pass
if [ "$?" -ne 0 ]; then
echo "Error Mounting //target/C"
exit
fi
mount -t smbfs //target/D /mnt/target/D -o ro,password=pass
if [ "$?" -ne 0 ]; then
umount /mnt/target/C
echo "Error Mounting //target/D"
exit
fi
mount -t smbfs //target/E /mnt/target/E -o ro,password=pass
if [ "$?" -ne 0 ]; then
umount /mnt/target/C
umount /mnt/target/D
echo "Error Mounting //target/E"
exit
fi
mount -t smbfs //target/F /mnt/target/F -o ro,password=pass
if [ "$?" -ne 0 ]; then
umount /mnt/target/C
umount /mnt/target/D
umount /mnt/target/E
echo "Error Mounting //target/F"
exit
fi
mount -t smbfs //target/G /mnt/target/G -o ro,password=pass
if [ "$?" -ne 0 ]; then
umount /mnt/target/C
umount /mnt/target/D
umount /mnt/target/E
umount /mnt/target/F
echo "Error Mounting //target/G"
exit
fi
sleep 5
# Day of the week for incremental backup
BACKUPDIR=`date +%A`
# Remove last week's incremental directory
rm -rf /backup/target/$BACKUPDIR
# rsync the mounted drives to the backup drive
rsync -auvW --modify-window=10 --stats --delete \
--backup --backup-dir=/backup/target/$BACKUPDIR \
--exclude "/mnt/" \
--exclude "/proc/" \
--exclude "lost+found/" \
--exclude "/cdrom/" \
--exclude "/floppy/" \
--exclude "/other/" \
--exclude "WIN386.SWP" \
--exclude "pagefile.sys" \
--exclude "Cache/" \
--exclude "C/WINDOWS/Temporary Internet Files/" \
--exclude "RECYCLED/" \
/mnt/target/ /backup/target/full/
sleep 5
umount /mnt/target/C
umount /mnt/target/D
umount /mnt/target/E
umount /mnt/target/F
umount /mnt/target/G
# Remove the lockfile
rm -f /var/lock/target_inc
fi