使用PHP备份MySQL数据库,然后加密文件以上传到另一台服务器

时间:2011-08-14 19:17:00

标签: php mysqldump database-backups mcrypt

我已经阅读了几篇关于相关代码片段和相关代码的建议,但我不认为他们之间已经就我的任务达成了共识,因此我将一些问题再次提出问题。另外,其他的都很老了,我想得到一些更新的回复......

目标

  • 完全转储SQL DB(如果数据库被清除,可以将其导入MySQL)。理想情况下,这个sql转储可以通过PHPMyAdmin导入,例如。
  • 转储,通过PHP5加密(我正在考虑使用mcrypt)。
  • 获取加密文件,并通过PHP中的SSH2将其上传到远程服务器。
  • 删除本地加密文件和本地未加密转储。

相反 - 我是否需要访问已保存的备份

  • 手动SFTP到存储备份的远程服务器。
  • Donwload加密备份。
  • 解密。
  • 通过PHPMyAdmin
  • 手动导入MySQL

我真的不需要脚本来执行相反的过程。如果我需要备份,我已经深入参与了重新启动和运行 - 所以手动解密应该不是问题。但是,除了阅读PHP手册之外,我确实希望我知道最佳方式,...

2 个答案:

答案 0 :(得分:2)

谢谢蒂姆。我在PHPMySQLAutoBackup中找到了一个很好的预构建解决方案。我正在添加代码,它将使用system()加密GPG ..虽然它目前并非没有我的艰辛。如果我继续遇到GPG问题,我会提出一个新问题......

答案 1 :(得分:1)

听起来很简单,真的。

如果你想用PHP编写脚本,那很好。但是,您可能不需要太多PHP功能。你基本上只是使用简单的控制结构shell_exec(),你将用它来驱动几个命令行工具,如mysqldump,gpg(或其他加密工具),scp(发送你的数据) offsite)和unlink()删除本地副本。

所以听起来你只需要指向命令行工具的一些指针。我提到了我上面使用过的那个。除此之外,只需将正确的命令行字符串与exec()或shell_exec()组合在一起即可。