最近学习做集群,需要用到mpich做并行计算,而这个mpich在做程序分发的时候又需要用到remote shell即所谓的rsh。

我的机器性能还算不错,跑三个虚拟机也没问题,当然肯定会有点卡。我有两个虚拟机用的是openSUSE11.0的系统,一个用gnome桌面,另一个用KDE的,因为openSUSE为了让用户好用,所以很多功能都预先安装了,比如xinetd,这个后面会说。第三个虚拟机用ubuntu8.10。

要在openSUSE(node1和node2使用)上使用rsh基本不费事(以下是两台机器都要做的):

1.安装rsh

只需任务栏-->计算机-->安装软件,然后选择安装rsh和rsh-server就行了,rsh只是客户端而已

2.编辑必须的文件

(1)/etc/hosts,添加类似于以下的内容:

192.168.9.128 node1 server

192.168.9.129 node2

192.168.9.130 node3

 

其中的ip地址是vmware自动给三台虚拟机分配的,应为不需要外网访问,所以不需要用桥接。这样128那台机器就有了node1和server两个别名,ping 192.168.9.128与ping node1效果一样,这样做可以方便其他配置。

(2)/etc/hosts.equiv,如果没有就新建一个,该文件用于rsh可信连接,不用输密码

node1

node2

node3

$p#

(3)/root/.rhosts,内容同上,用于root用户使用rsh,上面那个文件只适用于普通用户

(4)/etc/securetty,在最后加入rsh,好像不加也能用

(5)/etc/xinetd.d/rsh,suse的这个文件不同于redhat,里面少了一项“disable=no”,得自己加上,如果在下面测试时你遇到“connection refused”这样的提示,那就是因为这个“disable”没处理好,如图

UBuntu修改rsync端口号_测试

3.测试

在终端输入chkconfig rsh on,确保rsh服务开启

再输入rsh node2 true应立即返回,无任何显示(注意这是在node1那台机器上,若在node2上应输入rsh node1 true)

这就说明安装成功!

 

在ubuntu(node3使用)上安装rsh就没这么顺利了,首先是包管理工具里面没有rsh需要的两个包,并且xinetd也没有装上

1.安装xinetd

apt-get install xinetd

2.安装rsh-client和rsh-server

然后直接双击安装,很容易

3.编辑需要的文件,步骤同suse的

4.关键步骤

当你在编辑必需的文件时会发现有几个文件找不到,没错!安装了rsh-client和rsh-server后,/etc/xinetd.d目录下并没有需要的rsh、rlogin和rexec文件,这个时候node3能rsh到node1和node2,但是反之就不行,于是猜想是那个“disable”项的关系,因此直接在这个目录下新建那三个文件,内容分别与suse里面的相应文件相同

5.测试

ubuntu下没有chkconfig命令,确实不方便,只能用/etc/init.d/xinetd restart附带的把rsh重启一下,然后再从node1和node2分别敲rsh node3 true,都成功,说明ubuntu上的也成功了

6.总结

其实关键就是新建文件那步,rsh会按照那几个文件配置自己,缺省的“disable”都为“yes”,没有这项也当成了“disable=yes”,suse中一开始就是这种情况。