[Koha-patches] [PATCH] Bug 6275 - allow automated backups for packages
Chris Cormack
chrisc at catalyst.net.nz
Tue May 17 00:02:15 CEST 2011
From: Robin Sheat <robin at catalyst.net.nz>
This causes backups for the last two days to be stored by default. The
backups will go into /var/spool/koha.
Signed-off-by: Chris Cormack <chrisc at catalyst.net.nz>
---
debian/koha-common.cron.daily | 1 +
debian/koha-common.install | 1 +
debian/scripts/koha-run-backups | 93 +++++++++++++++++++++++++++++++++++++++
3 files changed, 95 insertions(+), 0 deletions(-)
create mode 100755 debian/scripts/koha-run-backups
diff --git a/debian/koha-common.cron.daily b/debian/koha-common.cron.daily
index 059682e..e2c7a80 100644
--- a/debian/koha-common.cron.daily
+++ b/debian/koha-common.cron.daily
@@ -22,3 +22,4 @@ koha-foreach --enabled /usr/share/koha/bin/cronjobs/holds/cancel_expired_holds.p
koha-foreach --enabled /usr/share/koha/bin/cronjobs/services_throttle.pl > /dev/null 2>&1
koha-foreach --enabled /usr/share/koha/bin/cronjobs/cleanup_database.pl --sessions --zebraqueue 10
koha-foreach --enabled --noemail /usr/share/koha/bin/cronjobs/cleanup_database.pl --mail
+koha-run-backups --days 2 --output /var/spool/koha
diff --git a/debian/koha-common.install b/debian/koha-common.install
index 6ed2587..5f4bef4 100644
--- a/debian/koha-common.install
+++ b/debian/koha-common.install
@@ -22,6 +22,7 @@ debian/scripts/koha-remove usr/sbin
debian/scripts/koha-reset-passwd usr/sbin
debian/scripts/koha-restart-zebra usr/sbin
debian/scripts/koha-restore usr/sbin
+debian/scripts/koha-run-backups usr/sbin
debian/scripts/koha-start-zebra usr/sbin
debian/scripts/koha-stop-zebra usr/sbin
debian/scripts/koha-upgrade-schema usr/sbin
diff --git a/debian/scripts/koha-run-backups b/debian/scripts/koha-run-backups
new file mode 100755
index 0000000..7bf39c5
--- /dev/null
+++ b/debian/scripts/koha-run-backups
@@ -0,0 +1,93 @@
+#!/bin/sh
+# Copyright 2010-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/>.
+
+# Daily cron job for koha.
+# - dump all sites, except one called 'demo'
+
+dirname="/var/spool/koha"
+days="2"
+
+show_help() {
+ cat <<EOH
+$0 - performs backups of the koha installations on the system
+
+This allows automation of backing up the koha data and configuration to the
+filesystem. It will keep the past so many backups, discarding older ones.
+
+Options:
+ --output: the directory that the resulting files will be placed into.
+ (default: /var/spool/koha)
+ --days: the number of days to keep backups around for
+ (default: 2)
+
+Note: backups produced using this tool can be restored using \`koha-restore'.
+EOH
+}
+
+CMD_LINE=`getopt -o h --long days:,output:,help -n 'koha-run-backups' -- "$@"`
+
+if [ $? != 0 ] ; then show_help ; exit 1 ; fi
+
+eval set -- "$CMD_LINE"
+while true ; do
+ case "$1" in
+ -h|--help)
+ show_help; exit;;
+ --days)
+ days=$2; shift 2 ;;
+ --output)
+ dirname=$2; shift 2 ;;
+ --) shift ; break ;;
+ *) echo "Unknown error parsing the command line!" ; exit 1 ;;
+ esac
+done
+
+for name in $(koha-list --enabled | grep -Fxv demo)
+do
+ koha-dump "$name" > /dev/null
+
+ # Remove old dump files.
+ # FIXME: This could probably be replaced by one line of perl.
+ ls "$dirname/$name/" |
+ sed "s:^$name-\([0-9-]*\)\.\(sql\|tar\)\.gz$:\1:" |
+ sort -u |
+ tac |
+ sed "1,${days}d" |
+ tac |
+ while read date
+ do
+ tardump="$dirname/$name/$name-$date.tar.gz"
+ sqldump="$dirname/$name/$name-$date.sql.gz"
+ if [ -e "$tardump" ] && [ -e "$sqldump" ]
+ then
+ rm "$tardump"
+ rm "$sqldump"
+ elif [ -e "$tardump" ] || [ -e "$sqldump" ]
+ then
+ echo "Only one of a pair exists! Not removing it."
+ for x in "$tardump" "$sqldump"
+ do
+ if [ -e "$x" ]
+ then
+ echo "Exists : $x"
+ else
+ echo "Does not exist: $x"
+ fi
+ done
+ fi
+ done
+done
+
--
1.7.4.1
More information about the Koha-patches
mailing list