共计 1323 个字符,预计需要花费 4 分钟才能阅读完成。
mysql 数据库中存储着网站最核心最宝贵的数据,如果因为不可预测的原因导致数据损坏或丢失,对一个网站的打击是毁灭性的,一次又一次的教训提醒着我们一定要做好备份,但是手工备份确实比较麻烦,每天都要手工操作一次,
如果站多的话简直是一种折磨,不过好在我们可以通过编写好的脚本让系统自动备份数据,省去体力劳动。下面收集了几种自动备份 mysql 数据库的脚本,一般的站够用了,但要注意:如果数据库过大,或者系统设置不当,都可能导致自动备份失败,因此即使采用了自动备份,也要记得经常查看是否备份成功,以及备份的数据是否完整、可用。
只需要将下面的脚本内容保存为 mysqlbackup.sh,并添加到 crontab 即可。如在 ssh 中输入:
crontab -e
输入:
00 00 * /home/website/mysqlbackup.sh
即为每天 00:00 自动运行备份脚本。
1、自动导出 mysql 备份,并上传到指定 ftp
!/bin/bash
ftp 设置
Host=FTP_IP
Username=FTP_user
Passwd=FTP_passwd
备份 mysql 并导出到文件
mysqldump - u 用户 - p 密码 数据库名 > $(date +%Y%m%d)- 数据库名.sql
压缩备份文件
tar -zcvf $(date +%Y%m%d)mysql 数据库名.tar.gz $(date +%Y%m%d)*
上传到 ftp
echo “open $Host
user $Username $Passwd
bin
cd /hzg/
prompt off
mput $(date +%Y%m%d)mysql 数据库名.tar.gz
printf “\n”
close
bye”|ftp -i -n
删除旧的备份文件
rm -rf $(date +%Y%m%d)- 数据库名.sql $(date +%Y%m%d)mysql 数据库名.tar.gz
rm -rf $(date +%Y%m%d)*
rm -rf $(date +%Y%m%d)*
2、自动备份 mysql 数据库,并发送到指定 email
备份并导出 mysql 数据库到文件
mysqldump -uroot -ppassword –databases db1 db2 db3 > /home/website/backups/databackup.sql
压缩备份文件
tar zcf /home/website/backups/databackup.sql.tar.gz /home/website/backups/
发送到指定邮箱
echo “ 主题: 数据库备份 ” | mutt -a /home/website/backups/mysqlbackup.sql.tar.gz -s “ 内容: 数据库备份 ” www@gmail.com
删除旧的备份文件
rm -r /home/website/backups/*
将 -ppassword 中的 password 换为自己的 root 密码,将 db1 db2 db3 换为你需要备份的数据库名。路径和邮箱等自己替换即可。
也可以用下面的命令直接导出 mysql 备份为压缩文件:
mysqldump - u 用户 - p 密码 数据库名 | gzip -c > $(date +%Y%m%d)- 数据库名.sql.