一、前言
上一篇文章中已经设置了FTP服务器, 接下来这篇文章中我们来对数据库服务器进行设置
二、FTP的设置
1. 安装ftp软件包
yum -y install ftp
2. 连接本机的ftp进行测试
# 使用ftp测试连接下之前设置的服务器, IP地址请自行更换
ftp 192.168.1.2
# 输入账号密码后, 会出现登录成功或登录失败提示
# 登录成功会提示: 230 Login successful
# 不成功, 请参照https://blog.youkuaiyun.com/a33130317/article/details/115538602对FTP服务器进行调整
三、mysql备份脚本
#!/bin/bash
#################################
# 请修改本地数据库用户名密码
# 请修改本地备份目录
# 请修改FTP主机的主机地址,用户名和密码
# 请修改mysqldump的路径
# 请修改要备份的数据库名称
#################################
# 备份数据库的用户名
USER=qwer
# 备份数据库实用的密码
PASSWD=asdf1234
# 本地备份目录
BACKDIR=/opt/mysqlbak/db
# FTP主机
FTPHOST=192.168.1.2
# FTP用户名
FTPUSER=mysqlbak
# FTP密码
FTPPASS=mysqlbak
# 当前时间
DATE=`date +%Y-%m-%d`
# 本地备份保留时间
OLDDATE=`date +%Y-%m-%d -d '-10 days'`
# 备份服务器备份保留时间
FTPOLDDATE=`date +%Y-%m-%d -d '-20 days'`
# mysql备份执行命令文件路径
MYSQLDUMP=/usr/local/mysql/bin/mysqldump
# 进程文件存放目录
SOCKET=/tmp/mysql.sock
# 判断备份目录是否存在,如果不存在则创建
[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR}
# 判断当前时间目录是否存在,如果不存在则创建
[ -d ${BACKDIR}/${DATE} ] || mkdir ${BACKDIR}/${DATE}
# 判断10天前旧目录是否存在,存在则删除
[ ! -d ${BACKDIR}/${OLDDATE} ] || rm -rf ${BACKDIR}/${OLDDATE}
# 要进行备份的数据库名称
for DBNAME in db1 db2 db3
do
# 进行备份
${MYSQLDUMP} -S ${SOCKET} -u ${USER} -p${PASSWD} --opt ${DBNAME} | gzip > ${BACKDIR}/${DATE}/${DBNAME}-backup-${DATE}.sql.gz
echo "${DBNAME} has been backup successful."
sleep 5
done
cd ${BACKDIR}/${DATE}
# 将备份数据数据备份到FTP备份服务器
ftp -i -n -v <<EOF
open ${FTPHOST}
user ${FTPUSER} ${FTPPASS}
bin
cd ${FTPOLDDATE}
mdelete *
cd ..
rmdir ${FTPOLDDATE}
mkdir ${DATE}
cd ${DATE}
mput *
bye
EOF
四、给脚本运行权限
chmod 777 ./脚本名.sh
五、测试脚本的运行
./脚本名.sh > mysqlbak.log
六、为脚本设置计划任务
# 凌晨一点执行
0 1 * * * /opt/mysqlbak/脚本名.sh
# 具体内容请自行替换
七、本文首发说明
本文首发于老刘博客, http://laoliu.pro