#! /bin/sh
# usage $0
date=`date -I`
export localdb=`ls /var/lib/mysql -l | egrep '^d' | awk '{print $9}' | egrep -v '(\.|\.\.)' | awk -F/ '{print $1}'`
export remotedb=`ssh root@internet "ls /var/lib/mysql -l" | egrep '^d' | awk '{print $9}' | egrep -v '(\.|\.\.)' | awk -F/ '{print $1}'`
export localcount=`ls /var/lib/mysql -l | egrep '^d' | awk '{print $9}' | wc -l`
export remotecount=`ssh root@internet "ls /var/lib/mysql -l" | egrep '^d' | awk '{print $9}' | wc -l`
export localstored=`find /var/backup/mysql -mtime -1 -type f -print | grep intranet | wc -l`
export remotestored=`find /var/backup/mysql -mtime -1 -type f -print | grep internet | wc -l`
for nextdb in $localdb
do
mysqldump -ppassword --databases $nextdb | bzip2 > /var/backup/mysql/intranet-$nextdb-$date.sql.bz2
done
for remotenextdb in $remotedb
do
ssh root@internet "mysqldump -ppassword --databases $remotenextdb | bzip2 > /tmp/internet-$remotenextdb-$date.sql.bz2"
scp root@internet:/tmp/internet-$remotenextdb-$date.sql.bz2 /var/backup/mysql/internet-$remotenextdb-$date.sql.bz2
ssh root@internet "rm /tmp/internet-$remotenextdb-$date.sql.bz2"
done
# This check only checks if the amount stored is the same as amount of databases listed for the day. Doesn't do any more advanced error checking yet.
if [ "$localcount" -ne "$localstored" ]; then
echo "There appears to been a problem with the intranet MySQL backup process"
fi
if [ "$remotecount" -ne "$remotestored" ]; then
echo "There appears to been a problem with the internet MySQL backup process"
fi
# erases backup files that are two weeks old
find /var/backup/mysql -mtime +14 -exec rm {} \;
|