#!/bin/bash basedir="/var/backup" prefix="daily" count="25" list="dirs.list" do_nsca() { local DESC=$1 shift local out=$($@) local ret=$? echo "virtualip $DESC $ret $out" | send_nsca -H nagios.random.lan -c /etc/nagios/send_nsca.cfg } ( mountpoint -q $basedir && umount $basedir fsck -y /dev/drbd/by-res/backup mount ${basedir} echo "Start @ `date`" > ${basedir}/time last=${basedir}/${prefix}.${count} lasttmp=${basedir}/${prefix}.${count}.tmp if [ -d ${lasttmp} ]; then rm -r ${lasttmp} fi if [ -x ${last} ]; then mv ${last} ${lasttmp} fi for n in `seq ${count} -1 1`; do ((m=$n - 1)) src=${basedir}/${prefix}.$m dest=${basedir}/${prefix}.$n mv ${src} ${dest} done if [ -d ${lasttmp} ]; then mv ${lasttmp} ${basedir}/${prefix}.0 else mkdir -p ${basedir}/${prefix}.0 fi for src in `cat ${basedir}/${list}`; do dest=${basedir}/${prefix}.0/${src} yest=${basedir}/${prefix}.1/${src} if [ ! -d ${dest} ]; then mkdir -p ${dest} fi rsync -ax --delete-excluded --link-dest=${yest} ${src} ${dest} --exclude-from=${basedir}/exclude done touch ${basedir}/${prefix}.0 echo "Begin CRM @ `date`" >> ${basedir}/time rm -f ${basedir}/${prefix}.0/crm.conf crm configure show > ${basedir}/${prefix}.0/crm.conf echo "Begin LDAP @ `date`" >> ${basedir}/time rm -f ${basedir}/${prefix}.0/ldap.ldif.xz ldapsearch | xz > ${basedir}/${prefix}.0/ldap.ldif.xz echo "Begin PostgreSQL @ `date`" >> ${basedir}/time function pq() { rm -f ${basedir}/${prefix}.0/postgresql-$1.sql.xz pg_dump -Upostgres $1 | xz > ${basedir}/${prefix}.0/postgresql-$1.sql.xz } pq bugzilla pq gentoobrowse pq mirrorsearch pq p2pvr pq sa_bayes echo "Begin hardlink @ `date`" >> ${basedir}/time do_nsca "Backup Volume" /usr/lib64/nagios/plugins/check_disk -w 5% -c 2% $basedir hardlink -mt ${basedir} do_nsca "Backup Volume" /usr/lib64/nagios/plugins/check_disk -w 5% -c 2% $basedir echo "End @ `date`" >> ${basedir}/time umount ${basedir} ) | tee /var/log/backup.log