目标
需要在Linux下开发一个监控程序,其利用网络登陆到另外一台Linux服务器A上执行一些命令并获取命令执行结果,然后对数据进行分析
基本方案
因为没有Linux的电脑,只能利用vmware安装Linux虚拟机B,如ubuntu 12.04LTS
因为局域网的网络安全问题 Linux虚拟机B无法直接和Linux服务器A通信,因此二者不能通过交换机接到共用网络里因此考虑将二者网线直连构成私有局域网
虚拟机同外界通信有多种方式如NAT、bridged(http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646007.html),因为Linux服务器A需要频繁更换而且其网络默认为DHCP方式,为了避免手动配置IP耽误时间,因此考虑在虚拟机B上搭建DHCP服务器,自动给Linux服务器A分配IP,并且自动获悉Linux服务器A的IP,在这种模式下虚拟机的网络模式只能采用bridged模式
安装DHCP服务
安装软件时需要访问外部网络,因此先设置虚拟机的模式为NAT(最容易的上网方式)
Ubuntu一个非常好的特性是如果你执行一个命令 此命令不存在时,其会推荐相关的软件包提示你安装 因此只要输入一个模糊匹配的命令即可找到你要安装的软件
sailing@ubuntu:~$ ping -c 1 baidu.com
PING baidu.com (220.181.111.86) 56(84)bytes of data.
64 bytes from 220.181.111.86: icmp_req=1ttl=128 time=6.18 ms
--- baidu.com ping statistics ---
1 packets transmitted, 1 received, 0%packet loss, time 0ms
rtt min/avg/max/mdev = 6.180/6.180/6.180/0.000ms
sailing@ubuntu:~$ dhcp
No command 'dhcp' found, did you mean:
Command 'dhcpx' from package 'irpas'(multiverse)
Command 'dhcpd' from package 'isc-dhcp-server'(main)
Command 'dhcpd' from package'isc-dhcp-server-ldap' (universe)
Command 'hcp' from package 'lam4-dev'(universe)
Command 'chcp' from package 'nilfs-tools'(universe)
Command 'dccp' from package 'dcap' (universe)
Command 'dicp' from package 'dish' (universe)
dhcp: command not found
sailing@ubuntu:~$ dhcpd
The program 'dhcpd' can be found in thefollowing packages:
*isc-dhcp-server
*isc-dhcp-server-ldap
Try: sudo apt-get install <selectedpackage>
sailing@ubuntu:~$ sudo apt-get install dhcp3-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will beinstalled:
isc-dhcp-server
Suggested packages:
isc-dhcp-server-ldap
The following NEW packages will beinstalled:
dhcp3-server isc-dhcp-server
0 upgraded, 2 newly installed, 0 to