From ebd3a91e602983b315fede375a01308e6493c3c9 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Tue, 20 May 2003 18:05:14 +0000 Subject: Bugfixing (users and databases not reset between database engines. --- localdumpsql | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'localdumpsql') diff --git a/localdumpsql b/localdumpsql index eefd277..3bdd559 100755 --- a/localdumpsql +++ b/localdumpsql @@ -3,7 +3,7 @@ # /usr/local/sbin/localdumpsql # Copyright 2001-2003 Jonas Smedegaard # -# $Id: localdumpsql,v 1.5 2003-05-20 03:42:55 jonas Exp $ +# $Id: localdumpsql,v 1.6 2003-05-20 18:05:14 jonas Exp $ # # MySQL/PostgreSQL maintenance script # @@ -58,15 +58,15 @@ function getbackupdir_user() { echo "`gethome_user \"$1\"`/backup"; } function mysqlvalid() { [ -x $mysql_bin ]; } #function mysqlpasswd_user() { grep password "`gethome_user $1`"/.my.cnf | awk -F= '{print $2}' | awk '{print $1}' | head -1; } -function mysqlusers() { mysql -uroot mysql -e "select User from user;" | grep -Ev '^(User|debian-sys-maint|root|.+-admin)$' | sort -u; } -function mysqldb_user() { mysql -u root mysql -re "select Db from db where User='$1';" | grep -v '^Db$' | sort -u; } +function mysql_users() { if [ -n "$1" ]; then echo "$1"; else mysql -uroot mysql -e "select User from user;" | grep -Ev '^(User|debian-sys-maint|root|.+-admin)$' | sort -u; fi; } +function mysql_db_user() { if [ -n "$1" ]; then echo "$1"; else mysql -u root mysql -re "select Db from db where User='$2';" | grep -v '^Db$' | sort -u; fi; } #function mysqldump_user_db() { $mysql_bin --opt --user="$1" --password="`mysqlpasswd_user $1`" "$2"; } #function mysqldump_user_db() { $mysql_bin --opt --user="root" --password="`mysqlpasswd_user root`" "$2"; } function mysqldump_user_db() { $mysql_bin --opt --user="root" "$2"; } function postgresvalid() { [ -x $postgres_bin -a -x /usr/lib/postgresql/bin/pg_ctl ]; } -function postgresusers() { echo "root"; } #FIXME -function postgresdb_user() { su -s /bin/sh postgres -c "/usr/bin/psql -t -c 'select datname from pg_database order by datname' -d template1 | sed -e 's/ //' | grep -v '^template[01]$'"; } +function postgres_users() { echo "root"; } #FIXME +function postgres_db_user() { if [ -n "$1" ]; then echo "$1"; else su -s /bin/sh postgres -c "/usr/bin/psql -t -c 'select datname from pg_database order by datname' -d template1 | sed -e 's/ //' | grep -v '^template[01]$'"; fi; } function postgresdump_user_db() { su -s /bin/sh postgres -c "$postgres_bin $2"; } # Check for valid input @@ -82,9 +82,7 @@ done for sqltype in $sqltypes; do if ${sqltype}valid; then - [ $sqltype = "postgres" ] && users="root" #FIXME - [ -z "$users" ] && users="`${sqltype}users`" - for user in $users; do + for user in `${sqltype}_users "$users"`; do home="`gethome_user \"$user\"`" test -d "$home" || continue targetdir="`getbackupdir_user \"$user\"`/$sqltype" @@ -92,8 +90,7 @@ for sqltype in $sqltypes; do mkdir -p "$targetdir" chown $user "$targetdir" fi - [ -z "$databases" ] && databases="`${sqltype}db_user \"$user\"`" - for db in $databases; do + for db in `${sqltype}_db_user "$databases" "$user"`; do targetfile="$targetdir/$stamp.$db.sql" (set +e; ${sqltype}dump_user_db $user $db; set -e) > "$targetfile" chown $user "$targetfile" -- cgit v1.2.3