Browse Source

added new commands for backing up

Jiri Kuthan 23 years ago
parent
commit
1837681fbe
1 changed files with 62 additions and 3 deletions
  1. 62 3
      scripts/ser_mysql.sh

+ 62 - 3
scripts/ser_mysql.sh

@@ -1,4 +1,4 @@
-#!/bin/sh 
+#!/bin/sh -x
 #
 # $Id$
 #
@@ -13,12 +13,13 @@
 #################################################################
 # config vars
 #################################################################
-DBNAME=ser
+DBNAME=ser2
 USERNAME=ser
 DEFAULT_PW=heslo
 ROUSER=serro
 RO_PW=47serro11
 CMD="mysql -p -u "
+BACKUP_CMD="mysqldump -p -c -t -u "
 TABLE_TYPE="TYPE=MyISAM"
 SQL_USER="root"
 
@@ -30,7 +31,10 @@ COMMAND=`basename $0`
 cat <<EOF
 usage: $COMMAND create
        $COMMAND drop   (!!entirely deletes tables)
-       $COMMAND reinit (!!entirely deletes and than re-creates tables)
+       $COMMAND reinit (!!entirely deletes and than re-creates tables
+       $COMMAND backup (dumps current database to stdout)
+	   $COMMAND restore <file> (restores tables from a file)
+       $COMMAND copy <new_db> (creates a new db from an existing one)
 
        if you want to manipulate database as other MySql user than
        root, want to change database name from default value "$DBNAME",
@@ -40,6 +44,24 @@ usage: $COMMAND create
 EOF
 } #usage
 
+ser_backup()  # pars: <database name> <sql_user>
+{
+if [ $# -ne 2 ] ; then
+	echo "ser_drop function takes two params"
+	exit 1
+fi
+$BACKUP_CMD $2 $1
+}
+
+ser_restore() #pars: <database name> <sql_user> <filename>
+{
+if [ $# -ne 3 ] ; then
+	echo "ser_drop function takes two params"
+	exit 1
+fi
+$CMD $2 $1 < $3
+}
+
 ser_drop()  # pars: <database name> <sql_user>
 {
 if [ $# -ne 2 ] ; then
@@ -298,6 +320,43 @@ EOF
 
 
 case $1 in
+	copy)
+		shift
+		if [ $# -ne 1 ]; then
+			usage
+			exit 1
+		fi
+		tmp_file=/tmp/ser_mysql.$$
+		ser_backup $DBNAME $SQL_USER > $tmp_file
+		ret=$?
+		if [ "$ret" -ne 0 ]; then
+			rm $tmp_file
+			exit $ret
+		fi
+		ser_create $1 $SQL_USER
+		ret=$?
+		if [ "$ret" -ne 0 ]; then
+			rm $tmp_file
+			exit $ret
+		fi
+		ser_restore $1 $SQL_USER $tmp_file
+		ret=$?
+		rm $tmp_file
+		exit $ret
+		;;
+	backup)
+		ser_backup $DBNAME $SQL_USER
+		exit $?
+		;;
+	restore)
+		shift
+		if [ $# -ne 1 ]; then
+			usage
+			exit 1
+		fi
+		ser_restore $DBNAME $SQL_USER $1
+		exit $?
+		;;
 	create)
 		ser_create $DBNAME $SQL_USER
 		exit $?