blob: bf0b125b1865bebf8c8160569c2758c9968e02d0 (
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#!/bin/bash
logger="/usr/bin/logger -p local1.info -t backup"
short=$( hostname -s )
RSYNC_DST="rsync://172.19.1.12/backup_$short"
# find backup folder
if [ -e /srv/backup ]; then
folder=/srv/backup
else
folder=$1
fi
if [ "$folder" = "" ]; then
/usr/bin/logger -p local1.info -t backup "Crap. Can't find settings folder, give me a folder as option"
echo "Crap. Can't find settings folder, give me a folder as option"
exit 1
fi
## Settings file
if [ -f $folder/settings ]; then
/usr/bin/logger -p local1.info -t backup "Using settings file"
echo "Using settings file"
. $folder/settings
fi
## Dump packages
echo Dump packages
dpkg --get-selections >$folder/packages.list
## MySQL backup
if [ "${MYSQL_DATABASES:-}" != "" ]; then
echo -n mysql dump
/usr/bin/logger -p local1.info -t backup "Backup mysql"
mkdir -p $folder/sql
for i in $MYSQL_DATABASES
do
/usr/bin/logger -p local1.info -t backup "Backup of mysql database: $i"
if [ "${MYSQL_PASSWORD:-}" != "" ]; then
output=$( mysqldump --events --routines --triggers -p$MYSQL_PASSWORD $i | bzip2 >$folder/sql/$i.sql.bz2 2>&1)
else
output=$( mysqldump --events --routines --triggers $i | bzip2 >$folder/sql/$i.sql.bz2 2>&1)
fi
if [ $? -gt 0 ]; then
echo $outlog | mail -s "Error on mysql backup $(hostname)" torben.egmose@gmail.com
fi
/usr/bin/logger -p local1.info -t backup "$outlog"
echo $output
done
echo done
fi
RSYNC_EXTRA=${RSYNC_EXTRA:-}
# dynamic rsync list
if [ -e $folder/dont.list ]; then
RSYNC_EXTRA="$RSYNC_EXTRA --exclude-from=$folder/dont.list "
fi
output=$( (
[ -e /etc/ntp.conf ] && echo /etc/ntp.conf
[ -e /etc/iptables/rules ] && echo /etc/iptables/rules
[ -e /etc/iptables/rules.v4 ] && echo /etc/iptables/rules.v4
[ -e /etc/iptables/rules.v6 ] && echo -e /etc/iptables/rules.v6
[ -e /etc/pure-ftpd ] && echo /etc/pure-ftpd/
[ -e /usr/bin/mysqld_safe ] && echo /etc/mysql/
[ -e /etc/cups ] && echo /etc/cups
[ -e /etc/mdadm/mdadm.conf ] && echo /etc/mdadm/mdadm.conf
[ -e /etc/sudoers ] && echo /etc/sudoers
[ -e /opt/ ] && echo /opt/
[ -e /etc/auto.master.d/ ] && echo /etc/auto.master.d/
[ -e /etc/postfix/ ] && echo -e "/etc/postfix/\n/etc/aliases"
[ -e /etc/samba/ ] && echo /etc/samba/
[ -e /etc/krb5.conf ] && echo /etc/krb5.conf
[ -e /etc/bind/named.conf ] && echo -e "/etc/bind/named.conf\n/var/cache/bind/"
[ -e /etc/sudoers.d ] && echo /etc/sudoers.d/
[ -e /usr/share/pam-configs ] && echo /usr/share/pam-configs/
[ -e /etc/ngnix ] && echo -e "/etc/nginx"
[ -e /etc/stunnel ] && echo /etc/stunnel/
[ -e /etc/rsyncd.conf ] && echo /etc/rsyncd.conf
[ -e /etc/modules ] && echo /etc/modules
[ -e /lib/udev/devices ] && echo /lib/udev/devices
[ -e /usr/bin/locate ] && /usr/bin/locate -r "^/\(home\|root\).*/\.ssh$"
[ -e /etc/syslog-ng ] && echo /etc/syslog-ng
[ -e /etc/rsyslog ] && echo /etc/rsyslog
echo -e "/etc/fstab
$folder
/etc/apt/sources.list
/etc/rc.local
/etc/resolv.conf
/etc/network/interfaces
/etc/hosts
/etc/pam.d/
/etc/nsswitch.conf
/var/spool/cron/crontabs/
/usr/local/bin/"
[ -e $folder/file.list ] && cat $folder/file.list
) | rsync -v --stats --recursive --copy-links --times --whole-file --delete --chmod=a+rwx --perms --files-from=- $RSYNC_EXTRA / $RSYNC_DST )
if [ $? -gt 0 ]; then
echo $output | mail -s "Error on backup $(hostname)" torben.egmose@gmail.com
echo $output
fi
/usr/bin/logger -p local1.info -t backup "$outlog"
echo local backup script
if [ -e /opt/bin/backup.sh ]; then
output=$( /opt/bin/backup.sh 2>&1 )
if [ $? -gt 0 ]; then
echo $output | mail -s "Error on backup localscript $(hostname)" torben.egmose@gmail.com
fi
/usr/bin/logger -p local1.info -t backup "$outlog"
echo $output
fi
echo done
#monitor backup
if [ -e $folder/seen ]; then
$folder/seen backup
fi
|