django - django的备份策略

标签 django deployment backup

我最近部署了几个使用 django(在 webfaction 上)构建的 Web 应用程序。
这些将是我正在从事的这种规模的首批项目中的一些,所以我想知道在 webfaction 和备用位置维护备份的有效备份策略是什么。

编辑:

我要备份什么?

数据库和用户上传的媒体。 (我的代码是通过 git 管理的)

最佳答案

我不确定是否有一个适合所有人的答案,尤其是因为您还没有说什么你打算备份。我平时的MO:

  • 源代码:使用源代码控制,例如 svn 或 git。这意味着您通常会有:代码的开发、部署和存储库备份(特别是在 drsc 中)。
  • 数据库:这也取决于使用情况,但通常:
  • 有一个 dump_database.py 管理命令,它将自省(introspection)设置,并且每个 db 将输出正确的 db dump 命令(考虑到 db 类型和数据库名称)。
  • 有一个 cron 工作 在另一台服务器上 它通过 ssh 连接到应用程序服务器,执行转储数据库管理命令,使用数据库名称 + 时间戳作为文件名的 sql 文件并将其上传到另一台服务器(在我的例子中是亚马逊的 s3)。
  • 媒体文件:例如用户上传。在另一台服务器上保留一个 cron 作业,该服务器可以 ssh 进入应用程序服务器并将 rsync 调用到另一台服务器。

  • 但是要记住的是,备份的预期目的是什么。
    如果是意外(无论是磁盘故障、错误或 sql 注入(inject))数据丢失或只是恢复,您可以将这些 cron 作业保留在同一台服务器上。

    如果您还希望在服务器被入侵时保持安全,您不能将远程备份凭据(sshkeys、amazon secret 等)保存在应用程序服务器上!否则攻击者将获得对备份服务器的访问权限。

    关于django - django的备份策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5120216/

    相关文章:

    sql-server - 使用 SQL Server 镜像时是否镜像了 CLR DLL?

    python - Django celery 与 RabbitMQ

    django - Django 和 Postgres 违反外键约束

    django - 读取 WSGI 处理程序时发生错误 - 将 django 部署到 azure web 应用程序

    php - 将 Git 与共享托管计划一起使用

    使用 TYPE=InnoDB 导入 MySQL

    python - 如何使我的测试装置仅在 Django 中测试时加载?

    c# - 多服务器部署的 ASP.net 解决方案注意事项

    php - Magento:静态 block 和配置设置迁移

    linux - 如何使用 shell 脚本从备份中删除多余的文件?