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

我不是经过培训的系统pipe理员,所以我一直在学习。 在我缺乏知识的情况下忍受着我。 🙂

我负责分析我的雇主的一台服务器。 它运行的是CentOS,其主要function是作为我们组织的各种包pipe理器(RPM,DEB)的包库,但也有其他function。 麻烦的是,没有人知道它是如何configuration的

我们需要将这个服务器移动到一个新的物理机器上,所以我被要求弄清楚它是如何configuration的,它在运行什么等等。我知道这是一个相当模糊的定义,而且我会肯定会错过的事情,但我想尽可能做一个彻底的工作。

我的问题是,我应该检查哪些地方? 如果您没有任何关于它的事先知识,您将如何去复制机器的configuration和环境。 这里有一些我能想到的:

  • 克伦乔布斯
  • 安装软件包
  • 运行服务

ps我当然会自动configuration一切,我可以找出这个服务器,所以这不会发生在我身后的下一个人。

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

什么是正在运行的进程?

# ps aux 

什么是networkingconfiguration?

 # 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 ,其中大部分系统configuration已保存。
  • /home ,有些服务可以使用这个文件夹来存储数据。
  • /opt ,可以在那里安装第三方应用程序。
  • /root ,pipe理员的主文件夹,可以包含有用的脚本。
  • /srv ,服务数据的标准文件夹。
  • /usr/local/{bin,etc,sbin,*}可以包含本地安装的文件。
  • /var/log ,可以给出有关系统上运行的信息。

因此,您应该首先了解运行您服务器的内容。

一个好的开始是使用蓝图来反向工程系统。 这将拉包,安装和一些基本的configuration信息。

另外,由于这是一个CentOS / Redhat系统,请查看/root/anaconda-ks.cfg中的安装文件。 这会给你一些关于系统初始安装选项的想法。

你提到的三件事是一个好的开始。 我也会这样做:

  • rpm -V $(rpm -qa)查看已安装软件包中的更改
  • find /[belmosuv]* | xargs -n1 rpm -q --whatprovides | grep 'not owned' find /[belmosuv]* | xargs -n1 rpm -q --whatprovides | grep 'not owned'find安装没有包pipe理器的文件
  • 至less备份/ home和/ root(因此排除在上面的查找之外),最好是整个机器,这样你总是可以find你将不可避免地错过的位