自动备份 MySQL 数据库、对其进行 gzip 压缩并通过电子邮件发送到特定帐户的最有效方法是什么?
我有点担心丢失论坛数据库,而且我通常一周都很忙,经常忘记每周备份一次(而是每两周或每月备份一次,这还不算太糟,但频率比我希望的要低)。使用 cronjob 和电子邮件(或 FTP/SFTP,因为我刚刚意识到其中一个数据库太大而无法附加在电子邮件中)进行设置会容易得多,而且我不容易忘记。
我现在的看法是:
mysqldump dbname > YYYY-MM-DD_dbname.sql gzip YYYY-MM-DD_dbname.sql 将 YYYY-MM-DD_dbname.sql.gz 作为附件发送到电子邮件地址或 {S,}FTP 将其发送到另一台服务器并发送电子邮件让我知道备份和传输成功。
有没有更好的方法来实现这一点?有什么例子可以说明如何实现它吗?
答案1
我认为你不可能做得比现在更好。我可能会使用类似下面的方法:
- 创建数据库转储
- 使用 gzip 或其他方式压缩它(技术上可选)
- 使用
scp
或rsync
将文件复制到另一台服务器 - 在远程服务器上运行校验和来验证副本(可选)
- 删除原始数据库转储(可选)
- 发送邮件表明成功
或者,如果任何一步失败,请退出并立即发送电子邮件解释失败原因。(我假设您拥有必要的工具,例如rsync
或scp
、sha1sum
或md5sum
、gzip
或mail
或sendmail
等效工具)