-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbackup-rmgztk_morwen
executable file
·86 lines (70 loc) · 2.13 KB
/
backup-rmgztk_morwen
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
82
83
84
85
86
#!/bin/sh
# $Id: backup-rmgztk_morwen,v 1.17 2004-12-22 13:13:25 turbo Exp $
#
# Backup script for host: %HOST%
DATE=`date +"%Y%m%d"`
BACKUPDIR=/var/.backups
HOSTNAME=`hostname`
BACKUPFILE1=$BACKUPDIR/System/$HOSTNAME-confs-$DATE.tar.bz2
if [ -f /etc/init.d/slapd.backup ]; then
BACKUPFILE2=$BACKUPDIR/OpenLDAP/$HOSTNAME-slapd-$DATE.ldif.bz2
fi
BACKUPFILE3=$BACKUPDIR/KerberosV/$HOSTNAME-krb5-$DATE
BACKUPFILE5=/etc/dpkg/selections-$DATE.gz
BACKUPFILE7=$BACKUPDIR/Logs/$HOSTNAME-oldlogs-$DATE.tar.bz2
BACKUPFILES="$BACKUPFILE1 $BACKUPFILE2 $BACKUPFILE3.bz2 $BACKUPFILE7"
cd /
# Make sure the directoris exists.
for file in $BACKUPFILES; do
dir=`dirname $file`
[ ! -x $dir ] && mkdir -p $dir
done
echo "Starting system backup ($BACKUP_TYPE) at" `date +"%Y%m%d %H:%M:%S"`
# Support function
check_error () {
local errcode=$1 ; shift
local msg="$*"
if [ "$errcode" = "0" ]; then
echo "Successfully backed up $msg."
else
echo "Failed to backup $msg!"
fi
}
# ----- L D A P -----
if [ -f /etc/init.d/slapd.backup ]; then
/etc/init.d/slapd.backup stop > /dev/null 2>&1
slapcat -n /var/lib/ldap.backup/id2entry.dbb \
-f /etc/ldap/slapd.conf.backup \
-l /tmp/ldap.ldif -b 'c=SE' | \
egrep -v '^replace:'
stat=$?
/etc/init.d/slapd.backup start > /dev/null 2>&1
cat /tmp/ldap.ldif | bzip2 > $BACKUPFILE2
rm /tmp/ldap.ldif
check_error "$stat" "LDAP database"
fi
# ----- K E R B E R O S -----
kdb5_util dump $BACKUPFILE3
if [ -f $BACKUPFILE3.dump_ok ]; then
bzip2 -9 $BACKUPFILE3
rm $BACKUPFILE3.dump_ok
else
echo "Could not dump krb5 db to $BACKUPFILE3!"
fi
# ----- I M P O R T A N T C O N F I G F I L E S -----
dpkg --get-selections \* | sort | gzip -f9 > $BACKUPFILE5
tar cjpsf $BACKUPFILE1 `find %DIRS% \
-type f | egrep -v '~$' | \
sed -e 's@^/@@' -e 's@\.dpkg-dist@@' | \
sort` > /dev/null 2>&1
# -----------------
# Logfiles...
cd /var/log && tar --remove-files -cjf $BACKUPFILE7 `find -name '*.gz'`
# -----------------
for file in $BACKUPFILES; do
chgrp backup $file
chmod 640 $file
done
rm -f $BACKUPFILE5
echo "Ending system backup at" `date +"%Y%m%d %H:%M:%S"`
echo