summaryrefslogtreecommitdiff
path: root/localdumpsql
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2003-05-20 18:05:14 +0000
committerJonas Smedegaard <dr@jones.dk>2003-05-20 18:05:14 +0000
commitebd3a91e602983b315fede375a01308e6493c3c9 (patch)
treeda2dc0acc2076e8aefc38ca95e1388a1f30241b3 /localdumpsql
parent7ab9a8d7f77901f4c05a0a611af7e4d3016e57b1 (diff)
Bugfixing (users and databases not reset between database engines.
Diffstat (limited to 'localdumpsql')
-rwxr-xr-xlocaldumpsql17
1 files changed, 7 insertions, 10 deletions
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 <dr@jones.dk>
#
-# $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"