summaryrefslogtreecommitdiff
path: root/backup-mysql
diff options
context:
space:
mode:
authorPeter Palfrader <peter@palfrader.org>2005-09-02 00:21:32 +0000
committerweasel <weasel@bc3d92e2-beff-0310-a7cd-cc87d7ac0ede>2005-09-02 00:21:32 +0000
commit0a327c96c08fc5c146f17021a787aadce39c9f19 (patch)
tree172667203ddd04e84006a63bf8f00b22b0cd020a /backup-mysql
parent92603bccb2fc25f27eeead40079cd33a10886e9f (diff)
Add some stuff
git-svn-id: svn+ssh://asteria.noreply.org/svn/weaselutils/trunk@2 bc3d92e2-beff-0310-a7cd-cc87d7ac0ede
Diffstat (limited to 'backup-mysql')
-rwxr-xr-xbackup-mysql41
1 files changed, 41 insertions, 0 deletions
diff --git a/backup-mysql b/backup-mysql
new file mode 100755
index 0000000..f6ad2ac
--- /dev/null
+++ b/backup-mysql
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2002, 2003, 2004, 2005 Peter Palfrader <peter@palfrader.org>
+#
+# All rights reserved.
+#
+
+echo "Does not handle per client backup dir" >&2
+exit 1
+
+umask 037
+
+set -e
+set -u
+
+DATE=`date "+%Y%m%d-%H%M%S"`
+TARGET=/var/backups/local/mysql
+[ -d $TARGET ] || mkdir -p $TARGET
+
+echo 'SHOW DATABASES;' | mysql | tail -n +2 |
+while read db; do
+ if [ "$db" = "innodb" -o "$db" = "test" ] ; then
+ continue;
+ fi
+
+ file="$TARGET/$DATE-$db"
+ mysqldump --opt --lock-tables -- "$db" > "$file"
+ bzip2 -- "$file"
+
+ md5=`md5sum -- "$file.bz2" | awk '{print $1}'`
+ if [ -e "$TARGET/MD5-$md5" ]; then
+ rm -- "$file.bz2"
+ ln "$TARGET/MD5-$md5" "$file.bz2"
+ else
+ ln "$file.bz2" "$TARGET/MD5-$md5"
+ fi
+done | egrep -v 'Database ".*" dropped'
+
+# clean up old stuff
+find "$TARGET" -name 'MD5-*' -links 1 -print0 | xargs --no-run-if-empty rm --