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