summaryrefslogtreecommitdiff
path: root/scripts/backup.cron
blob: 50e6a8277f657d63050a1338de792830e9259ae3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/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