25c932967f
This patch adds the koha-mysqlcheck script, as a "frontend" for the mysqlcheck command. It can be used to check the integrity of database tables, as well as to repair them. See "man mysqlcheck" for more information. The script takes a Koha instance name as its only required parameter. Any other parameters provided before the instance name are passed directly to mysqlcheck, which means that all the functionality of mysqlcheck is available through this script. To test the script: - Apply the patch, build your own packages and install them, or - copy koha-mysqlcheck to a server already running off packages - Run some variations of the command, with and without arguments, and check that the output makes sense. E.g.: sudo koha-mysqlcheck myinstance sudo koha-mysqlcheck -e myinstance # Extended checks sudo koha-mysqlcheck -e -v myinstance # Extended checks and verbose - See "man mysqlcheck" for other relevant options To test the man page: - Run these commands and look at the formatted man page: $ xsltproc /usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl \ debian/docs/koha-mysqlcheck.xml $ man -l koha-mysqlcheck.8 - Make sure this test passes: $ prove -v xt/verify-debian-docbook.t Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
48 lines
1.5 KiB
Bash
Executable file
48 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# koha-mysqlcheck: run mysqlcheck on the database of the specified Koha instance.
|
|
# Copyright 2013 Magnus Enger Librioech
|
|
# Based on koha-mysql, which is Copyright 2011 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
|
|
|
|
umask 0077
|
|
|
|
die() {
|
|
echo "$@" 1>&2
|
|
exit 1
|
|
}
|
|
|
|
# Parse command line.
|
|
if [ $# -lt 1 ]; then
|
|
die "Usage: $0 [options] instancename"
|
|
fi
|
|
|
|
# Separate any arguments from the instance name
|
|
array=($@)
|
|
len=${#array[@]}
|
|
name=${array[$len-1]}
|
|
args=${array[@]:0:$len-1}
|
|
|
|
kohaconfig="/etc/koha/sites/$name/koha-conf.xml"
|
|
|
|
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 )"
|
|
|
|
mysqlcheck --host="$mysqlhost" --user="$mysqluser" --password="$mysqlpass" \
|
|
$args "$mysqldb"
|