33.8. 通过网络备份和恢复

备份允许您在发生安全漏洞和意外事故后恢复信息资源的可用性和完整性。如果没有备份,您可能无法在系统故障和安全漏洞后恢复计算机的数据。制定一个足够全面的计划来涵盖您计划部署的所有服务器非常重要。我们必须确定要备份的文件类别。例如,您可以选择仅备份用户数据文件 /home因为损坏的系统文件应从原始发行介质重新加载。

文件备份有通用的技术方法。对于网络服务器,服务器信息内容的权威版本被创建并维护在一个安全的机器上,该机器也进行了备份。如果服务器被入侵并且其内容损坏,则可以从维护权威版本的安全系统重新加载。这种方法通常用于公共服务器,例如 Web 服务器,因为内容更改的间隔更可预测。

确保备份以安全的方式执行,并且备份的内容保持安全非常重要。我们建议计划中明确规定:

您应确保备份传输以安全的方式通过网络进行。在前面的章节中,我们向您展示了如何使用 tardump 等实用程序,在执行备份过程的同一系统上将备份到磁带和文件。这些程序 tardump 也能够通过网络进行备份。为了能够通过网络进行备份,您必须确保您的系统上安装了名为 rmt 和 rsh 的软件包。rmt 实用程序为 dumptar 等程序提供对磁带设备的远程访问。为了补充这一点,rsh 软件包包含一组程序,允许用户在远程计算机上运行命令、登录到其他计算机以及在计算机之间复制文件,rsh、rlogin 和 rcp 就是这组程序

由于 rsh 很容易被黑客入侵,并且 rmt 依赖 rsh 才能工作,因此出于安全原因,我们选择不在我们的安装设置中安装它们,请参阅 Linux 服务器的安装 以获取更多信息。因此,我们必须找到另一种安全地通过网络进行备份的方法。SSH 技术是我们问题的解决方案 软件 - 安全性,因为它还具有通过其 scp 命令,通过加密跨网络复制数据的能力。以下是一种方法,允许我们利用 SSH 软件的潜力,通过 scp SSH 实用程序,以安全的方式传输我们使用 tar 或 dump 进行的备份。

33.8.1. 使用 scp SSH 命令

scp 命令在网络上的主机之间复制文件。它使用 SSH 进行数据传输,并使用与 SSH 相同的身份验证,并提供相同的安全性。与 rsh 软件包附带的 rcp 实用程序不同,scp 会要求输入密码或密码短语。在下面的示例中,我们传输使用 tar 归档程序制作的备份文件。使用 dump 程序传输备份文件或磁带的步骤相同。要使用 scp 将备份磁带或文件复制到远程安全系统,请使用以下命令
[admin@deep /]# scp <localdir/to/filelocation> <user@host:/dir/for/file>
其中 <localdir/to/filelocation> 是备份文件在本地服务器上的目录位置,<user@host:/dir/for/file> 按以下顺序表示

  1. 用户名,user远程站点上将保存备份文件的人员,

  2. 主机名,host您要将备份文件发送到的远程主机,

  3. 此主机的远程目录,您要在其中放置传输的备份文件。

例 33-2. scp SSH 命令

一个真实的例子如下所示
[admin@deep /]# scp -Cp /backups/deep-01Feb.tar admin@backupserver:/archive/deep/deep-01Feb.tar

admin@backupserver's password:
deep-01Feb.tgz            |      10479 KB | 154.1 kB/s | ETA: 00:00:00 | 100%

Important: C选项启用压缩,以便通过加密会话快速传输数据,p选项表示应在副本上保留源文件的修改时间和访问时间以及模式。这通常是可取的。重要的是要注意,远程主机上的dir/for/file目录,/archive/deep在我们的示例中,必须由您在 scp 命令中指定的用户名拥有admin是我们的示例中的用户名,否则您可能会收到类似scp: /archive/deep/deep-01Feb.tar: 权限被拒绝。

要使用 scp 将远程磁带或文件复制到本地系统,请使用以下命令
[admin@deep /]# scp <user@host:/dir/for/file> <localdir/to/filelocation>
其中 <user@host:/dir/for/file> 按以下顺序表示;

  1. 用户名user远程站点上保存备份文件的人员,

  2. 主机名host您要从中获取备份文件的远程主机,

  3. 此主机的远程目录,备份文件保存在其中,

  4. <localdir/to/filelocation> 是您系统上的本地目录,您希望将从远程主机获取的备份文件放置在该目录中。

例 33-3. scp SSH 命令

一个真实的例子如下所示
[admin@deep /]# scp -Cp admin@backupserver:/archive/deep/deep-01Feb.tar /backups

admin@backupserver's password:
deep-01Feb.tgz            |      10479 KB | 154.1 kB/s | ETA: 00:00:00 | 100%

Important: 重要的是要注意,本地主机上的localdir/to/filelocation目录,/backups在我们的示例中,必须由您在 scp 命令中指定的用户名您在 scp 命令中指定的admin是我们的示例中的用户名,否则您可能会收到类似/backups/deep-01Feb.tar:权限被拒绝。