#!/bin/sh # # koha-dump: dump all contents and configs for a Koha site # 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 . set -e # Make sure the files we create are not accessible by anyone else. umask 0077 die() { echo "$@" 1>&2 exit 1 } # Parse command line. [ "$#" = 1 ] || die "Usage: $0 instancename" name="$1" kohaconfig="/etc/koha/sites/$name/koha-conf.xml" date="$(date +%Y-%m-%d)" echo "Dumping Koha site $name:" # Dump database. mysqlhost="$( xmlstarlet sel -t -v 'yazgfs/config/hostname' $kohaconfig )" mysqldb="$( xmlstarlet sel -t -v 'yazgfs/config/database' $kohaconfig )" mysqluser="$( xmlstarlet sel -t -v 'yazgfs/config/user' $kohaconfig )" mysqlpass="$( xmlstarlet sel -t -v 'yazgfs/config/pass' $kohaconfig )" backupdir="$( xmlstarlet sel -t -v 'yazgfs/config/backupdir' $kohaconfig )" [ -z "$backupdir" ] && backupdir="/var/spool/koha/$name" dbdump="$backupdir/$name-$date.sql.gz" echo "* DB to $dbdump" mysqldump --databases --host="$mysqlhost" \ --user="$mysqluser" --password="$mysqlpass" "$mysqldb" | gzip > "$dbdump" chown "root:$name-koha" "$dbdump" chmod g+r "$dbdump" # Dump configs, logs, etc. metadump="$backupdir/$name-$date.tar.gz" echo "* configs, logs to $metadump" tar -C / -czf "$metadump" \ "etc/koha/sites/$name" \ "etc/apache2/sites-available/$name" \ "etc/apache2/sites-enabled/$name" \ "var/lib/koha/$name" \ "var/log/koha/$name" echo "Done."