From 901b8ca93ca051d60c837c95a52443b64493fa4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Sat, 11 May 2013 10:14:13 +0300 Subject: [PATCH] bacula: Added support for MySQL catalog backup. --- bacula/files/bacula_catalog_dump | 29 +++++++++++++++++++++++++---- bacula/manifests/init.pp | 1 + 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/bacula/files/bacula_catalog_dump b/bacula/files/bacula_catalog_dump index 0727a0c..af32a0b 100755 --- a/bacula/files/bacula_catalog_dump +++ b/bacula/files/bacula_catalog_dump @@ -1,7 +1,28 @@ #!/bin/sh -# compact database -echo "vacuum;" | sqlite3 /srv/bacula/bacula.db +umask 077 -# dump database to file -echo ".dump" | sqlite3 /srv/bacula/bacula.db > /srv/bacula/bacula.sql +# read settings +eval `dbcheck -B -c /etc/bacula/bacula-dir.conf` + +backupfile="${working_dir}/bacula.sql" + +case $db_type in + MySQL) + cat < ${working_dir}/my.cnf +[client] +host="${db_address}" +user="${db_user}" +password="${db_password}" +EOF + MYSQL_HOME=${working_dir} mysqldump ${db_name} > ${backupfile} + rm ${working_dir}/my.cnf + ;; + SQLite) + echo "vacuum;" | sqlite3 ${working_dir}/bacula.db + echo ".dump" | sqlite3 ${working_dir}/bacula.db > ${backupfile} + ;; + *) + echo "ERR: No dump support for '${db_type}' database" + ;; +esac diff --git a/bacula/manifests/init.pp b/bacula/manifests/init.pp index 87e0fd5..5909da1 100644 --- a/bacula/manifests/init.pp +++ b/bacula/manifests/init.pp @@ -144,6 +144,7 @@ class bacula::director($password=undef, } } "mysql": { + require mysql::client if !$dbpassword { fail("\$dbpassword is required for bacula::director when using '${dbadapter} database") }