MySQL备份脚本
时间:2008-04-25 来源:huzi1986
MySQL备份脚本
August 30th, 2007
#!/bin/sh
#
# Copyright (C), 2007 bug All Rights Reserved
# Author : BUG
# Version : 1.0
# Date : 2007-03-31
# Email : [email protected]
# License : General Public License (GPL) v2
# Description: Database Backup Script
#
# mysqln : mysql database name default is all-databases
# mysqlu : mysql database user default is root
# mysqlp : mysql database password default is null
# srcpath : mysql bin path
# dstpath : backup destination path
# logfile : logfile name
# loghead : logfile date info
# runuser : current script running by users
mysqln=”mysql”
mysqlu=root
mysqlp=******
srcpath=/usr/local/mysql/var/
dstpath=”/mnt/bak/”
logfile=/mnt/bak/log/`date +%y%m%d`.log
loghead=[`date +%y/%m/%d\ %H:%M:%S`]
runuser=`ps aux | grep $$ | sed -n “1p” | awk ‘{ print $1 }’`
echo -en “\33[2J”
echo -en “\33[0;0H”
echo -en “\33[32m”
echo “$loghead Database Backup Script start by $runuser PID:$$” >> $logfile
echo “————————————————–”
echo “— Database Backup Script Start —”
echo “————————————————–”
echo -en “\33[37m”
rm -rf “$dstpath$(date +%y%m%d -d’-3 day’)”
mkdir -p “$dstpath$(date +%y%m%d)”
for file in $mysqln
do
/usr/local/mysql/bin/mysqldump –opt -u$mysqlu -p$mysqlp $file > $dstpath$(date +%y%m%d)/$file`date +%y$m%d`.sql 2> /dev/null
re1=$?
if [ “$re1″ -eq 0 ]
then
echo -n “$loghead” >> $logfile
echo -n “$file” | awk ‘{printf ” %-17s”, $1}’ >> $logfile
echo -n “database Export OK ” >> $logfile
echo -en “$file” | awk ‘{printf “%-17s “, $1}’
echo -en “database Export \33[32mOK\33[37m ”
tar -czvf “$dstpath$(date +%y%m%d)/$file`date +%y$m%d`.tgz” -P “$dstpath$(date +%y%m%d)/$file`date +%y$m%d`.sql” > /dev/null 2>&1
re2=$?
if [ “$re2″ -eq 0 ]
then
echo “tgz OK” >> $logfile
rm -f “$dstpath$(date +%y%m%d)/$file`date +%y$m%d`.sql”
echo -e “tgz \33[32mOK\33[37m”
else
echo “tgz file fail return $re2″ >> $logfile
echo -e “tgz \33[31mfail\33[37m”
fi
else
echo -n “$loghead” >> $logfile
echo -n “$file” | awk ‘{printf ” %-17s”, $1}’ >> $logfile
echo “database Export fail return $re1″ >> $logfile
echo -en “$file” | awk ‘{printf “%-17s “, $1}’
echo -e “database Export \33[31mfail\33[37m”
fi
done
echo “” >> $logfile
This entry was posted on Thursday, August 30th, 2007 at 10:42 am and is filed under MySQL. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.