Browse Source
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>3.16.x
Magnus Enger
11 years ago
committed by
Galen Charlton
2 changed files with 92 additions and 0 deletions
@ -0,0 +1,44 @@ |
|||
<article xmlns='http://docbook.org/ns/docbook'> |
|||
<title>koha-mysqlcheck</title> |
|||
<info> |
|||
<productname>Koha</productname> is the first free software library automation package. |
|||
<author> |
|||
<orgname>The Koha Community</orgname> |
|||
<uri>http://koha-community.org/</uri> |
|||
</author> |
|||
</info> |
|||
|
|||
<refentry xml:id="koha-mysqlcheck"> |
|||
|
|||
<refmeta> |
|||
<refentrytitle>koha-mysqlcheck</refentrytitle> |
|||
<manvolnum>8</manvolnum> |
|||
</refmeta> |
|||
|
|||
<refnamediv> |
|||
<refname>koha-mysqlcheck</refname> |
|||
<refpurpose>Run <command>mysqlcheck</command> on the database of the specified Koha instance.</refpurpose> |
|||
<refclass>UNIX/Linux</refclass> |
|||
</refnamediv> |
|||
|
|||
<refsynopsisdiv> |
|||
<cmdsynopsis> |
|||
<command>koha-mysqlcheck</command> <arg><option>...</option></arg> <arg choice="req" rep="norepeat"><replaceable>instancename</replaceable></arg> |
|||
</cmdsynopsis> |
|||
</refsynopsisdiv> |
|||
|
|||
<refsect1><title>Description</title> |
|||
<para>Run <command>mysqlcheck</command> on the database of the specified Koha instance.</para> |
|||
<para>Any arguments provided before the name of the instance are passed directly to <command>mysqlcheck</command>. This means that all the operations of <command>mysqlcheck</command> are available through this script.</para> |
|||
</refsect1> |
|||
|
|||
<refsect1><title>See also</title> |
|||
<simplelist type="inline"> |
|||
<member><command>mysqlcheck(1)</command></member> |
|||
<member><command>koha-mysql(8)</command></member> |
|||
</simplelist> |
|||
</refsect1> |
|||
|
|||
</refentry> |
|||
|
|||
</article> |
@ -0,0 +1,48 @@ |
|||
#!/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" |
Loading…
Reference in new issue