我有一个 AWS EC2 实例(我们称之为 Eye1),带有 500GB EBS 作为辅助存储,安装在/var
.
现在我想将我的环境迁移到另一个 EC2 实例(让我们在 Eye2 中调用)。新实例由其他团队成员通过安装 python2.7、tensorflow、opencv 以及 ML 和 CV alpong 所需的其他库以及 apache2、mysql、php 来初始化。
现在我需要分离 EBS(其中包含/var
Eye1 的内容)以将其重新连接到新的 EC2 并将其安装在/var
Eye2 上。
Eye2 的原始/var
内容会发生什么情况?如果将其替换为/var
Eye1 的内容会出现什么问题?
注意:我知道 Eye1 上托管的文件、网站和应用程序/var/www/html
将取代 Eye2 上的文件、网站和应用程序。这就是我的意图,因为 Eye2 的网络根目录是空的。
我的问题是,此举是否会损害任何操作系统级别的配置,并扰乱 LAMP 和 Python 及其依赖项。
我同意系统日志被替换,因为 Eye2 实际上是全新的,并且没有在其上运行任何活动。它被重新生成,然后安装了 LAMP + Python + 其依赖项。
答案1
不是全部,因为这很容易破坏东西。有相当多的目录你绝对可以不应该在系统之间复制或共享,包括(这不是详尽的列表):
- 几乎所有内容
/var/lib
:除其他外,这包括大多数发行版上的系统已安装软件包的数据库(将其复制到另一个系统将要破坏该系统,说真的,不要这样做),以及有状态服务的服务器状态(如果被复制,可能会破坏两个系统上的这些服务,并且在您的情况下可能会在将来引起问题)。 /var/db
:与 几乎相同的问题/var/lib
,只是使用较少。/var/log
和/var/account
:它们包含特定于它们所源自的系统的日志记录和记帐数据。复制它们将覆盖目标系统上的数据。虽然这看起来似乎并不重要,但在尝试解决问题时可能会非常痛苦,因为您不一定知道旧系统中的内容以及新系统中的内容,并且您无法从旧系统中看到任何内容。复制之前。/var/spool
:这是存储在本地系统上的各种服务特定数据的临时存储。包括本地邮件队列、本地at
批处理队列、本地打印队列和其他类似的东西。如果复制它,可能会发生各种令人困惑的事情(出于同样的原因,它通常也应该从备份中排除)。
此外,可以排除以下目录,因为复制它们没有意义(也不是详尽的列表):
/var/cache
:这用作缓存数据的临时存储。根据定义,你可以用核武器攻击这里的几乎任何东西,而不会破坏东西(尽管有些东西可能比你第一次运行它们时花费的时间更长)。/var/tmp
:同样,临时存储。/var/run
:不再是一个真正的问题,因为它是/run
当今大多数发行版的符号链接,但它曾经是它自己的目录,用于 PID 文件和套接字。
在您的特定情况下,您应该只复制您真正想要的目录,而不是所有内容。 /var/www
只要您的网站配置正确并且您更新链接以指向新主机名,复制几乎总是安全的。特别是,我建议只在线复制数据,然后删除旧的 EBS 实例(前提是您不需要保留它作为备份)。