需要复制服务器环境-从哪里开始?

需要复制服务器环境-从哪里开始?

我不是受过培训的系统管理员,所以我一直在边学边做。请原谅我知识的匮乏。:)

我被要求分析我雇主的一台服务器。它运行的是 CentOS,其主要功能是作为我们组织的各种包管理器(RPM、DEB)的包存储库,但它还有其他功能。问题是,它太旧了,没有人确切知道它是如何配置的……

我们需要将这台服务器移到一台新的物理机器上,因此我被要求弄清楚它是如何配置的,上面运行着什么等等。我知道这是一个相当模糊的定义,而且我肯定会错过一些东西,但我想尽可能彻底地完成工作。

我的问题是,我应该检查哪些方面?如果您对此没有任何先验知识,您将如何复制机器的配置和环境。以下是我能想到的一些:

  • 计划任务
  • 已安装的软件包
  • 运行服务

附言:一旦我能弄清楚这个服务器,我当然会自动化配置所有我能配置的东西,这样这件事就不会发生在我之后的下一个人身上。

答案1

首先,我会尽可能多地获取有关服务器运行状态的信息。

正在运行的进程有哪些?

# ps aux

网络配置是怎样的?

# ip address
# ip route

我们有聆听流程吗?

# netstat -lp

使用了哪些文件?

# lsof

安装的软件包有哪些?

# rpm -qa

也许是一些防火墙规则?

for t in `echo "mangle nat filter raw"`
do
  echo ">> $t"
  iptables -t $t -nvL
done

在这些有趣的文件夹中,您有:

  • /etc,其中保存了大部分系统配置。
  • /home,一些服务可以使用此文件夹来存储数据。
  • /opt,第三方应用程序可以安装在那里。
  • /root,管理员的主文件夹,可以包含有用的脚本。
  • /srv,服务数据的标准文件夹。
  • /usr/local/{bin,etc,sbin,*},可以包含本地安装的文件。
  • /var/log,可以提供有关系统正在运行的程序的有用信息。

通过这种方式,您应该对服务器的运行有一个初步的了解。

答案2

一个好的开始是使用蓝图对系统进行逆向工程。这将提取包、安装和一些基本配置信息。

此外,由于这是一个 CentOS/Redhat 系统,请查看中的安装文件/root/anaconda-ks.cfg。这将为您提供一些有关系统初始安装选项的想法。

答案3

您提到的三件事是一个很好的开始。我还会这样做:

  • rpm -V $(rpm -qa)查看已安装软件包中发生了哪些变化
  • find /[belmosuv]* | xargs -n1 rpm -q --whatprovides | grep 'not owned'查找没有使用包管理器安装的文件
  • 至少备份 /home 和 /root(因此从上面的查找中排除),最好是整个机器,这样你总能找到不可避免地会错过的部分

相关内容