“Drush”或“Drupal Shell”是Drupal管理员最好的朋友之一。 其许多命令行工具允许用户登录到Web服务器,并执行例行的任务,例如应用更新,阻止用户,甚至“引导”全新的Drupal安装。
与任何软件一样,保持常规备份是明智的。 在Drupal的情况下也是如此,其中对加载项模块的更新将执行不容易撤消的某些数据库操作。 如果这些导致其他模块或Drupal的核心问题,您将需要“回滚”到先前的版本。
幸运的是,drush应用程序提供了一个有用的“归档”实用程序,以及相应的“恢复”命令。
备份现有安装
drush命令带有许多子命令 ,其中包括drush ard或“archive dump”命令。 当从Drupal安装(即从目录树中的任何位置)运行时,此命令将执行以下操作:
首先,它将导出您网站的数据库副本,
接下来,它将获取所有安装文件的副本
最后,它将在当前工作目录中创建数据库导出和站点文件的归档
这允许您使用以下示例中显示的以下命令创建站点的快照。
Drush的drush ard命令。
drush ard
Database dump saved to [success] /tmp/drush_tmp_1477498943_5810d83f2ad81/mobius_dev_drupal.sql Archive saved to [ok] /home/path/to/archive-dump/20161026162145/mydrupalsite.20161026_16 2206.tar.gz
请注意,drush会如何将日期/时间戳添加到存档中? 好吗?
注意
您还可以使用以下命令执行与上述相同的命令
drush归档备份
drush arb
默认情况下,drush将使用包含日期/时间戳的文件名,因此您可以根据需要保留尽可能多的站点快照。 备份文件采用标准gzipp't tar格式,因此您可以使用自己喜欢的归档实用程序来检查其内容。 您可以提供与drush ard命令一些有用的选项如下:
“--destination”:此选项允许您为备份文件指定另一个目标位置,因此您不会在随机位置的档案中将Drupal安装乱抛垃圾。 请注意,您将需要提供完整的路径和文件名称,例如“drush ard --destination /home/user/backups/drupal/drupal_backup.tar.gz”。
“--overwrite”:通常如果您尝试使用与现有文件相同的路径和文件名进行备份,则命令将失败。 但是,此选项允许您使用新版本覆盖旧文件。 如果您希望始终保持当前备份方便快速恢复,这将非常有用。
“--no-core”:这样可以排除核心的Drupal安装,并且只能备份与您所构建的站点相关的数据。 你为什么想做这个? 那么,您可以随时从项目网站或FTP获取最新的Drupal版本,因此您无需浪费其上的存储空间。 您的核心安装也可能会发生这种情况,您想恢复Drupal本身的干净副本,然后还原您的站点。
一旦您有适合您需要的drush ard命令,请不要忘记将其包含在您最喜爱的管理shell脚本中或作为您的cron作业的一部分。
恢复您的网站
因此,如果您的旧服务器爆炸(对不起),您会发现新的托管,包括网络空间和访问数据库服务器。 现在是时候从您的一个备份还原您的网站。 如果您采取以下步骤,drush arr命令将为您做到这一点:
首先,将要恢复的备份文件复制到要恢复的位置(通常是Web服务器的根目录)。
接下来,运行drush arr'/path/to/nameofyourbackup.tar.gz'命令。 这将解压缩您的Drupal安装的整个目录树(前提是您没有使用“--no-core”选项)。
另外,在您的Drupal安装的根目录下将会导出数据库。 您需要将其导入到新的数据库中以恢复所有内容,用户等。假设您使用的是MySQL数据库,并且已创建数据库用户,则可以使用以下方法之一进行导入:
作为可以访问新Drupal数据库的用户登录时,从终端发出以下命令:user @ localhost:〜$ mysql drupal_db_name <drush_backup_file.sql
使用phpMySQL,您可以使用Web界面将导出导入新的(空)数据库。
最后,您可能需要对settings.php文件进行一些调整,其中包括:
检查您网站上的权限 - 如果您在提取站点文件时使用不同的用户名(如果是另一个托管帐户,则可能会执行此操作),则无法修改任何文件或目录,甚至可能不会能够查看您的网站。
调整您的网站生活的URL和/或端口。
更改网站数据库的URL,用户名和密码。
一旦完成,您应该可以访问您的主页网址,并在您离开时看到您的网站? 只有我们希望在一个更有弹性的主机上。