X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fcats%2Fmake_catalog_backup.in;h=a9643a12a934022e5cc7aca756342cb0cc0ca404;hb=01448b9cc8baff2e1942aaa59b71c36ee1cf070c;hp=dcb05b7165cbe08eb5104aa229b100d77294e4a4;hpb=3216c9e677ea69a7a2dc485d089313c8f1c6b069;p=bacula%2Fbacula diff --git a/bacula/src/cats/make_catalog_backup.in b/bacula/src/cats/make_catalog_backup.in index dcb05b7165..a9643a12a9 100755 --- a/bacula/src/cats/make_catalog_backup.in +++ b/bacula/src/cats/make_catalog_backup.in @@ -7,27 +7,57 @@ # of the output file (default = bacula). # $2 is the user name with which to access the database # (default = bacula). +# $3 is the password with which to access the database or "" if no password +# (default ""). WARNING!!! Passing the password via the command line is +# insecure and should not be used since any user can display the command +# line arguments and the environment using ps. Please consult your +# MySQL or PostgreSQL manual for secure methods of specifying the +# password. +# $4 is the host on which the database is located +# (default "") # # +BINDIR=@SQL_BINDIR@ + cd @working_dir@ -rm -f bacula.sql -if test xsqlite = x@DB_NAME@ ; then - echo ".dump" | @SQL_BINDIR@/sqlite $1.db >$1.sql +rm -f $1.sql +if test xsqlite = x@DB_TYPE@ ; then + echo ".dump" | ${BINDIR}/sqlite $1.db >$1.sql else - if test xmysql = x@DB_NAME@ ; then - @SQL_BINDIR@/mysqldump -u $2 -f --opt $1 >$1.sql + if test xmysql = x@DB_TYPE@ ; then + if test $# -gt 2; then + MYSQLPASSWORD=" --password=$3" + else + MYSQLPASSWORD="" + fi + if test $# -gt 3; then + MYSQLHOST=" --host=$4" + else + MYSQLHOST="" + fi + ${BINDIR}/mysqldump -u ${2}${MYSQLPASSWORD}${MYSQLHOST} -f --opt $1 >$1.sql else - if test xpostgresql = x@DB_NAME@ ; then - @SQL_BINDIR@/pg_dump -U $2 $1 >$1.sql + if test xpostgresql = x@DB_TYPE@ ; then + if test $# -gt 2; then + PGPASSWORD=$3 + export PGPASSWORD + fi + if test $# -gt 3; then + PGHOST=" --host=$4" + else + PGHOST="" + fi + # you could also add --compress for compression. See man pg_dump + exec ${BINDIR}/pg_dump -c $PGHOST -U $2 $1 >$1.sql else - echo ".dump" | @SQL_BINDIR@/sqlite3 $1.db >$1.sql + echo ".dump" | ${BINDIR}/sqlite3 $1.db >$1.sql fi fi fi # # To read back a MySQL database use: # cd @working_dir@ -# rm -f @SQL_BINDIR@/../var/bacula/* +# rm -f ${BINDIR}/../var/bacula/* # mysql