安装环境:CentOS 6,MySQL5.5
一、背景
近期,公司为加强数据库的数据安全,对数据库进行自动备份,本篇将在Linux下使用crontab自动备份并FTP上传数据库。
二、实施脚本
创建脚本dbbackup.sh
#!/bin/bash DATE=`date +%Y%m%d%H%M` DATABASE=**** #备份数据库 DB_USER=**** #备份用户名 DB_PASS="*******" #备份用户名的密码 BACKUP=******** #备份路径 /usr/local/mysql/bin/mysqldump -u$DB_USER -p$DB_PASS -h 127.0.0.1 -R --opt $DATABASE |gzip > ${BACKUP}\/${DATABASE}_${DATE}.sql.gz #备份及压缩 sleep 3 find $BACKUP -mtime +7 |xargs rm -rf #删除7天以上的备份文件 sleep 3 ftp -vn<<EOF open *.*.*.26 21 #打开ftp服务器,21为ftp服务器端口 user username password #ftp用户名及密码 binary #二进制上传 cd backup #切换ftp目录 lcd $BACKUP #切换本地目录 prompt #控制是否使用交互模式,使用关闭此功能 mput ${DATABASE}_${DATE}.sql.gz #上传备份文件 close bye EOF
增加可执行权限
chmod +x dbbackup.sh
加入crontab计划任务,每天凌晨3点自动执行。
crontab -e 0 3 * * * /root/dbbackup.sh >/dev/null 2>&1
不足:因ftp上传中加入删除7天以上备份测试失败,所以未加入脚本中。且脚本中部分设置未使用变量,没实现邮件通知备份成功与否,后续将陆续改进。下篇将介绍SQL Server备份并FTP上传小软件。