Prva inačica za bullseye
[bacula-cn.git] / db-dump
1 #!/bin/bash
2 DUMP_DIR=/var/backups/bacula-cn
3 CONFIG=/etc/default/bacula-cn
4
5 # load user config
6 [ -r $CONFIG ] && . $CONFIG
7
8 # check if db dumping is disabled
9 [ -z "$DUMP_DIR" ] && exit
10
11 # cleanup
12 MYSQL_EXCLUDE=/var/lib/mysql/.bacula_excludeme
13 PG_EXCLUDE=/var/lib/postgresql/.bacula_excludeme
14 rm -f $MYSQL_EXCLUDE
15 rm -f $PG_EXCLUDE
16
17 # prepare directory
18 umask 077
19 [ -e "$DUMP_DIR" ] || mkdir "$DUMP_DIR"
20 if [ -e "$DUMP_DIR" -a ! -d "$DUMP_DIR" ]; then
21     echo "$DUMP_DIR not usable"
22     exit 1
23 fi
24 chown root:root "$DUMP_DIR"
25 chmod 0700 "$DUMP_DIR"
26
27 # dump mysql
28 if [ -d /var/lib/mysql \
29      -a -x "`which mysqldump 2>/dev/null`" \
30      -a -r /etc/mysql/debian.cnf ]
31 then
32     MYSQL_DUMP="$DUMP_DIR/mysql.dump.gz"
33     MYSQL_OPT="--defaults-extra-file=/etc/mysql/debian.cnf --all-databases"
34
35     set -o pipefail
36     if mysqldump $MYSQL_OPT | gzip > $MYSQL_DUMP; then
37         touch $MYSQL_EXCLUDE
38     fi
39 fi
40
41 # dump postgresql
42 if [ -d /var/lib/postgresql \
43      -a -x "`which pg_dumpall 2>/dev/null`" ]
44 then
45     PG_DUMP="$DUMP_DIR/postgresql.dump.gz"
46
47     set -o pipefail
48     if su postgres -c pg_dumpall | gzip > $PG_DUMP; then
49         touch $PG_EXCLUDE
50     fi
51 fi