只需要将下面的脚本内容保存为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.gz