mysql备份shell-linux技术
#该脚本的功能是在tmp目录下创建一个当天日期的文件夹,使用mysqldump生成每一个库的sql文件并保存在该文件夹下。然后对生成的sql文件进行压缩打包,生成新的压缩文件,并通过ftp上传当天生成的打包文件。#/bin/bash
DATE=`date +%Y%m%d`
DATE_TIME=`date +"%Y%m%d%H%M%S"`
MYSQL_HOST="localhost"
MYSQL_USER="root"
MYSQL_PASS=123456
DBBACKUP_PATH=/tmp
MYSQL_DUMP="/usr/local/mysql/bin/mysqldump"
[ -d ${DBBACKUP_PATH} ] || mkdir -p ${DBBACKUP_PATH}
[ -d ${DBBACKUP_PATH}/$DATE ] || mkdir -p ${DBBACKUP_PATH}/$DATE
#rm -f $DBBACKUP_PATH/dbdata_$DATE* 2 >/dev/null
#rm -rf $DBBACKUP_PATH/$DATE 2 >/dev/null
sleep 1
# database_allback生成SQL文件
function database_allback()
{
for i in $(mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASS -e "show databases\G"|grep Database|awk '{ print $2 }')
do
#dump逐库循环生成sql文件
$MYSQL_DUMP --opt --skip-lock-tables $i -u $MYSQL_USER -p$MYSQL_PASS >${DBBACKUP_PATH}/$DATE/$i$DATE.sql 2>>${DBBACKUP_PATH}/$DATE/back_$DATE.log
echo "$MYSQL_DUMP --opt --skip-lock-tables $i -u $MYSQL_USER -p$MYSQL_PASS >${DBBACKUP_PATH}/$DATE/back_$DATE.sql">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
sleep 1
if [ $? -eq 0 ];then
echo $DATE_TIME":databases [ $i ] backup seccess!">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
else
echo $DATE_TIME":databases[ $i ] backup incorrect!">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
fi
#echo $DATE_TIME":excute mysqldump --opt $i -u $MYSQL_USER -p$MYSQL_PASS >${DBBACKUP_PATH}/$DATE/back_$DATE.sql">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
done
}
# tar.gz_files对生成的sql文件进行打包压缩
function tar.gz_files()
{
cd $DBBACKUP_PATH
tar -zcvf dbdata_$DATE.tar.gz $DATE
if [ $? -eq 0 ];then
echo $DATE_TIME":dbdata_$DATE.tar.gz files creat seccess!">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
else
echo $DATE_TIME":dbdata_$DATE.tar.gz files creat incorrect!">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
exit 9
fi
}
#FTP上传压缩打包文件
function ftp_putfiles()
{
ftp -v -n 192.168.1.52
页:
[1]