不同的 Drupal 开发人员有不同的技术来备份他们的 Drupal 网站。在本文中,我们将讨论备份 Drupal 8 或 Drupal 9 网站的两种常用方法。一种是借助备份和迁移 Drupal 模块。另一种方法是使用 CLI 执行 Cron 作业。
数据丢失可能是残酷和毁灭性的,无论是谁或什么原因造成的。好消息是,可以通过定期备份网站来预防这种情况。有时,每天都会进行备份,有时则偶尔进行。规律性取决于多种因素,例如 Drupal 站点的大小或更新网站的频率。幸运的是,Drupal 8 和 9 为您提供了更简单的选项,借助备份和迁移 Drupal 模块并通过 CLI 来备份和恢复您的网站。
使用 Drupal 8 和 9 的备份和迁移模块
备份和迁移模块可以备份数据库和文件。它还可以备份整个 Drupal 应用程序文件夹。该模块还具有加密功能,需要您下载一个名为 Defuse PHP 加密库的附加库
composer require defuse/php-encryption
使用步骤:
安装备份和迁移模块。
创建一个私有目录并分配可写权限(类似于我们赋予文件文件夹的权限)。
在settings.php文件中设置私有目录的路径,以便模块可以使用它来存储备份。
备份和迁移模块的 UI
安装模块后,前往管理 -> 配置 -> 开发 -> 备份和迁移。您将看到 5 个选项卡:
备份– 您可以在其中进行快速备份。单击“立即备份”后,您将能够在“已保存的备份”选项卡中看到它。
恢复– 您可以在其中恢复较早的备份
保存的备份– 将列出您迄今为止所进行的所有备份 计划
–您可以在其中安排备份
设置– 包含此模块的常规设置和选项
时间表:
这是该模块最重要的功能之一。该模块提供了一个自动调度程序,您可以在其中安排备份。它在每次 cron 运行期间自动运行。您可以根据需要添加任意数量的计划,以备份数据库、公共或私有文件目录或整个站点。
查看所有时间表
配置时间表
您可以在此处添加或编辑时间表。您可以为日程表命名。有一个选项可以启用或禁用调度程序。选择各种备份源之一,例如数据库、公共或私有文件、目录或整个站点。或者在“设置”选项卡中添加您自己的。如果您同时备份数据库和文件,则可以为每种备份类型配置不同的备份目标。这意味着您可以为数据库备份选择不同的目标,为文件备份选择不同的目标,等等。该模块还提供了在“设置”选项卡中添加更多您选择的目的地的配置。频率_选项允许您指定希望以 cron 作业进行备份的频率。您可以从小时、分钟、天和周中选择选项。“要保留的数量”选项允许我们指定要保留的备份数量。一旦达到您设置的限制,它就会自动删除旧的备份,从而解决内存和存储问题。
配置时间表
添加您的备份源
有什么限制吗?
可悲的是,是的。根据我的个人经验,我注意到当数据库大小增加时,我确实会遇到超时错误。这是一个问题,因为在某些服务器上,我们无法增加数据库执行的最大执行时间。我遇到的另一个问题是内存问题。在某些情况下,它可能会耗尽内存,具体取决于服务器的配置、数据库大小或备份的大小。当我们遇到这样的问题时,我们可以使用CLI方法。
CLI 备份方法
在命令行界面方法中,我们可以使用这两种方法进行备份:
将 Drush 与 Crontab 结合使用
根据我们需要备份的内容使用本机命令和 Crontab。
使用 Drush 和 Crontab
场景:安排数据库备份在每天凌晨 3 点 –
格式:
0 3 * * * <path-to-drush> -r <path-to-drupal-root> sql:dump --result-file=<filename>.sql --gzip
示例:
0 3 * * * /var/www/html/drupal_demo/vendor/drush/drush/drush -r
/var/www/html/drupal_demo sql:dump --result-file=/var/www/html/drupal_demo/db-dump-`date +%d%m%Y%H%M%S`.sql --gzip
使用本机命令和 Crontab
场景:同样的 - 安排数据库备份在每天凌晨 3 点 -
格式:
0 3 * * * mysqldump -u <mysql_username> -p <mysql_database_name> | gzip -c > <path-to-filename>.sql.gz
示例:
0 3 * * * mysqldump -u drupal -p drupal_demo | gzip -c >
/var/www/html/drupal_demo/db-dump-`date +%d%m%Y%H%M%S`.sql.gz
场景:安排每天早上 5 点备份文件 -
格式:
0 5 * * * tar -czvf <path-to-backup-filename>.tgz <source>
例子:
0 5 * * * tar -czvf /home/ubuntu/backups/drupal_demo-files-`date +%d%m%Y%H%M%S`.tgz
/var/www/html/drupal_demo/web/sites/default/files/
当您需要迁移网站时,备份不仅是必不可少的。定期备份是保护自己免受数据丢失的最佳方法。当Drupal 8(和 9)为您提供可以帮助自动备份的模块时,这不一定是一项乏味的工作。我们在这里讨论的备份和迁移模块以及 CLI 方法是我最推荐的两种自动备份方法。想知道我们如何为您的下一个项目实现如此令人惊叹的 Drupal 模块和功能?今天与我们的Drupal 专家交谈。
评论