Here is a simple backup script (
/usr/local/sbin/backup):
BACKUPDIR=/var/backups
KEEPDAYS=7
DATA="/root /home /srv \
/boot/grub/menu.lst \
--exclude=$BACKUPDIR"
CONFIG="/etc /var /usr/local \
--exclude=/var/cache/apt/archives \
--exclude=/var/cache/man \
--exclude=/var/run \
--exclude=/var/tmp \
--exclude=/var/lock \
--exclude=$BACKUPDIR \
--exclude=*.gz"
DATE=`date +%Y-%m-%d-%H-%M`
COMPUTER=`hostname`
find "$BACKUPDIR/" -name $COMPUTER-*.tgz \
-type f -mtime +$KEEPDAYS -delete
BACKUPFILE="$BACKUPDIR/$COMPUTER-data-$DATE.tgz"
tar cfz $BACKUPFILE $DATA \
--ignore-failed-read 2> /dev/null
chmod o-o $BACKUPFILE
chgrp adm $BACKUPFILE
BACKUPFILE="$BACKUPDIR/$COMPUTER-config-$DATE.tgz"
tar cfz $BACKUPFILE $CONFIG \
--ignore-failed-read 2> /dev/null
chmod o-o $BACKUPFILE
chgrp adm $BACKUPFILE
Run it by cron per schedule (file
/usr/local/sbin/cron-backup):
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/
LOG=/dev/null
15 21 * * * root test -x /usr/local/sbin/backup && backup >> $LOG
Let cron know about our scheduled backup:
ln -s /usr/local/sbin/cron-backup /etc/cron.d/cron-backup
The backup files are in $BACKUPDIR (
/var/backups):
deby:~
total 38M
-rw-r----- 1 root adm 19M 2010-04-23 23:30 deby-config-2010-04-23-23-30.tgz
-rw-r----- 1 root adm 4.3K 2010-04-23 23:30 deby-data-2010-04-23-23-30.tgz
...
No comments :
Post a Comment