只需要将下面的脚本内容保存为mysqlbackup.sh,并添加到crontab即可。如在ssh中输入:
crontab -e
输入:
00 00 * * * /home/website/mysqlbackup.sh
即为每天00:00自动运行备份脚本。
1、自动导出mysql备份,并上传到指定ftp
#!/bin/bash#ftp设置Host=FTP_IPUsername=FTP_userPasswd=FTP_passwd#备份mysql并导出到文件mysqldump -u用户 -p密码 数据库名 > $(date +%Y%m%d)-数据库名.sql#压缩备份文件tar -zcvf $(date +%Y%m%d)mysql数据库名.tar.gz $(date +%Y%m%d)*#上传到ftpecho "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