From ed786ffcf14388af11501f026edad382a9e10665 Mon Sep 17 00:00:00 2001 From: Olaf Rempel Date: Sun, 14 Mar 2010 12:57:19 +0100 Subject: [PATCH] full-system-backup: add mysql privileges --- full-system-backup/full-system-backup | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/full-system-backup/full-system-backup b/full-system-backup/full-system-backup index d1cf4bd..2df834d 100755 --- a/full-system-backup/full-system-backup +++ b/full-system-backup/full-system-backup @@ -179,14 +179,27 @@ for name in $BACKUPS; do auth="-u${user} -p${pass}" [ -n "$pass" ] || auth="-u ${user}" - if [ -z "$db_list" ]; then - db_list=$(echo "show databases;" | /usr/bin/mysql ${auth} -r --column-name=FALSE) - fi - + mysql_cmd="/usr/bin/mysql ${auth} -N" mysql_schema_dump="/usr/bin/mysqldump ${auth} --opt --all --no-data" mysql_data_dump="/usr/bin/mysqldump ${auth} --opt --add-locks=FALSE --no-create-info" - created_mysql_files="" + if [ -z "$db_list" ]; then + db_list=$(echo "SHOW databases;" | $mysql_cmd) + fi + + echo " privileges" >&2 + sql="SELECT DISTINCT CONCAT(\"'\", user, \"'@'\", host, \"'\") FROM mysql.user ORDER BY user, host;" + db_accounts=$(echo $sql | $mysql_cmd) + + for account in $db_accounts; do + sql="SHOW GRANTS FOR $account;" + echo "-- $sql" + echo $sql | $mysql_cmd + echo + + done >> ${tmpdir}/privileges.sql + created_mysql_files="privileges.sql" + for db in $db_list; do echo " database $db" >&2 @@ -219,7 +232,7 @@ done # store a log (only when not debugging) if [ -z "$DEBUG" ]; then - cat ${tmpdir}/msg | storage_put ${BACKUP_PREFIX}.log + cat ${tmpdir}/msg | storage_put ${BACKUP_PREFIX}.log none created_files="$created_files ${BACKUP_PREFIX}.log" fi