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
#!/usr/bin/bash
# 备份并导出 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.