[Koha-patches] [PATCH 15/28] Add koha-restore, a script to restore a Koha instance from a dump.

Lars Wirzenius lars at catalyst.net.nz
Tue May 25 03:44:14 CEST 2010


---
 debian/scripts/koha-restore |   81 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 81 insertions(+), 0 deletions(-)
 create mode 100755 debian/scripts/koha-restore

diff --git a/debian/scripts/koha-restore b/debian/scripts/koha-restore
new file mode 100755
index 0000000..d6e324e
--- /dev/null
+++ b/debian/scripts/koha-restore
@@ -0,0 +1,81 @@
+#!/bin/sh
+#
+# koha-restore: restore a Koha site from a dump (from koha-dump)
+# Copyright 2010  Catalyst IT, Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+set -e
+
+
+die() {
+    echo "$@" 1>&2
+    exit 1
+}
+
+
+# Parse command line.
+[ "$#" = 2 ] || die "Usage: $0 sqldump configdump"
+sqldump="$1"
+configdump="$2"
+
+
+# Verify that no files in the config dump exist on the filesystem.
+anyexists=no
+tar -tf "$configdump" |
+while read x
+do
+    if [ -e "/$x" ]
+    then
+        anyexists=yes
+        echo "ERROR: File exists: /$x" 1>&2
+    fi
+done
+if [ "$anyexists" = yes ]
+then
+    die "Config dump $configdump has files that exist on the filesystem."
+fi
+
+
+# Create user and group.
+name=$(tar tf "$configdump" | 
+       sed -n '/^etc\/koha\/sites\/\([^/]*\)\/$/s//\1/p')
+username="$name-koha"
+adduser --no-create-home --disabled-login --gecos "Koha instance $username" \
+    --quiet "$username"
+
+
+# Unpack tarball.
+tar -C / -xf "$configdump"
+
+
+# Re-create database and database user.
+mysqldb="koha_$name"
+mysqluser="koha_$name"
+mysqlpwd="$(sed -n '/.*<pass>\(.*\)<\/pass>.*/s//\1/p' /etc/koha/sites/$name/koha-conf.xml)"
+zcat "$sqldump" | mysql --defaults-extra-file=/etc/mysql/debian.cnf
+mysql --defaults-extra-file=/etc/mysql/debian.cnf <<eof || true
+DROP USER '$mysqluser';
+eof
+mysql --defaults-extra-file=/etc/mysql/debian.cnf << eof || true
+CREATE USER '$mysqluser' IDENTIFIED BY '$mysqlpwd';
+GRANT ALL PRIVILEGES ON $mysqldb.* TO '$mysqluser';
+FLUSH PRIVILEGES;
+eof
+
+
+# Restart Apache.
+/etc/init.d/apache2 restart
+
-- 
1.7.1




More information about the Koha-patches mailing list