Question : Error checking on mysqldumps on daily backup cronjob

I have a daily cronjob where I backup all of my databases on my two linux servers.  Currently, I have no way of knowing if this even works, if any errors were reported, etc.  I am not too sure how to get these flags, but any help on making this script better is appreciated.

Much thanks!
Code Snippet:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
#! /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 {} \;
Open in New Window Select All

Answer : Error checking on mysqldumps on daily backup cronjob


Add (echo) more messages and send crontab ouput to a log file, then check the log file (and save it):

1:
2:
## example crontab entry:
00 21 * * * /path/to/script/MyBackup.sh >/path/to/logs/MyBackup.log 2>&1
Open in New Window Select All
Random Solutions  
 
programming4us programming4us