创建网站备份应该是站长最重要的日常工作之一。但现实是,备份这一步往往被很多人忽略,也就是说,还有很多网络管理员对网站的安全意识不高。所有Linux/Mac用户都可以通过命令行工具以零经济成本创建网站备份。如果您使用的不是Linux/Mac,请关注我们的后续文章——如何在windows上通过软件创建备份。写这篇文章的初衷并不是给读者提供一个完整的备份解决方案,而是给有时间想学习一些基本的网站备份命令行工具的朋友一点参考。先决条件您的主机必须具有必要的软件和证书。服务器上的软件:tar电脑上的软件:SSH(用于创建/删除备份文件)SCP(用于下载备份文件)终端(如gnome-terminal,用于运行所有命令)所需信息服务器IP和SSH证书数据库凭据网站根目录(以及您要从备份中包含或排除的目录)数据库:MySQL、PostgreSQL或SQLite(如果您的网站使用一个)创建备份的详细步骤一旦您的计算机连接到服务器,您可以快速备份您的网站命令。通过SSH连接服务器:SSH是SecureShell的缩写,通常用于远程命令执行。打开终端并输入以下命令通过SSH协议连接到您的服务器:在终端连接到服务器后,您输入的每条命令都会在您的服务器上执行。接下来,我们要在服务器上创建一个名为“backup”的新文件夹。您可以将此文件夹放在任何地方,只要它不是公开的即可。如果你的web应用根目录是:/home/username/html,那么我们就可以在/home/username/下成功创建一个“备份(backup)”文件夹。将备份传输到计算机后,即可删除服务器上的备份记录。如果你不知道你网站的根目录,你可以在你的cPanel账户中找到这个信息:在上图中,我们可以看到网站的根目录是:/home/ma658tvk。在Linux/Mac操作系统上,您可以使用mkdir命令创建目录。例如:该命令可以帮助您在/home/username/中创建一个“备份”目录。在这个文件夹中,我们创建了4个子目录:db、core、logs和conf。注意mkdir命令中的-p符号,意思是:目录已经存在但主目录仍按需创建时不会报错。备份整个应用程序非常重要,包括数据库转储、核心文件、插件和媒体文件。如果想更详细一点,还可以备份服务器配置文件和日志。执行取证分析时,备份数据更为重要。导出数据库我非常喜欢使用命令行工具,因为在进行数据库备份时不需要额外的工具。大多数数据库引擎都有命令行功能,只需要获取数据库证书即可。整个过程简单、粗暴、高效。以下命令将导出数据库转储文件并将其放在:/home/username/backup/db/如果您的网站使用MySQL,请运行以下命令:如果是PostgreSQL,请运行此命令:这些命令用户名和密码将是用过的。输入后(你的终端看不到这些字符)dump文件会存放在事先准备好的备份文件夹中。如果网站使用的是SQLite,那么你只需要复制文件:创建网站文件的Tar文件现在我们要做的就是压缩网站核心文件(为了方便)。在您的服务器上安装tar程序,并确定您要备份或不备份的核心文件和其他文件的确切位置。让我们再次假设您的网站存储在:/home/username/html。然后使用下面的命令创建tar文件:如果你想覆盖/home/username/html中的所有文件,那么上面的命令就非常有用了。但是,如果您不想包含所有内容怎么办?假设你的网站结构如下:如果我们压缩整个目录,缓存(cache)文件夹也会被备份。根本不需要备份缓存文件。如果删除这部分内容,可以节省大量的时间和带宽。但是如果我们使用tar命令,我们可以使用-exclude标志来排除不需要备份的目录。下面我们重新压缩没有缓存目录的网站目录:另外,voilà–一个名为core.tar的.tar文件存储在/home/username/backup/core/中。您也可以始终使用-exclude命令排除不想备份的内容。可选:备份配置文件或日志文件根据个人经验,我多次从配置文件和日志文件的备份中受益。例如,我多次忘记了我的“httpd.conf”长什么样,所以每次都是通过检查我电脑上的备份来解决这个问题。我是一个懒惰的人,但请原谅我-这个习惯通常很有帮助,日志文件也是如此。配置文件和日志文件没有通用位置,但您可以将多个位置添加到tar命令。例如:第一行末尾的“\”符号表示当按下“Enter”键时,终端不执行该命令,而是表示该命令包含多行。如果最后一行命令行末尾没有“\”字符,则表示终端可以执行该命令。这样,您可以创建一个.tar文件,其中包含系统上不同文件夹中的配置/日志文件。只要您在备份服务器上安装了正确的软件,恢复配置文件将只允许您制作配置文件的副本。如果您在生产服务器中恢复配置文件,但软件不同,则恢复过程很容易出错。当心。最终备份创建最终的tar文件此时,我们已经准备好/home/username/backup/文件夹中的所有必需文件,现在我们只需要创建.tar文件并将其下载到我们自己的计算机即可。虽然我们也可以不压缩就直接下载整个备份文件夹,但我还是建议把它作为一个单独的压缩文件来下载(更安全更安全)。此命令将创建一个名为“latest.backup.tar”的文件,其中包含所有备份文件。在终端输入“exit”,断开PC与服务器的连接。通过scp下载文件我们需要通过scp命令下载latest.backup.tar文件:这个命令的作用是从服务器上抓取.tar文件,下载到你的电脑“/home/username/backups/domainname/”,然后根据标准日期命令(例如backup_20170730_142422)重命名该文件夹。从服务器上删除备份既然网站备份已经安全地保存在您的计算机上,我们就可以安全地从服务器上删除备份记录了。首先,通过SSH重新登录服务器,运行以下命令:上面的第一个命令将删除服务器上最后一个tar文件,第二个命令将帮助您递归地从服务器上删除备份文件夹。警告!确保您的文件和文件夹路径准确无误,因为通过命令行删除的内容很难恢复,而且难度会随着时间的推移而增加。一旦一个文件被删除,该文件的所有链接将被破坏,操作系统将随时释放该文件使用的块。再次免责声明:确保您使用的是正确的路径。删除备份文件后,您可以通过键入exit退出服务器。结论整个网站备份过程完美无缺!这不是一个完整的解决方案,但我认为这是学习信息安全领域备份技术的良好开端。
