Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux RSH:端口不足_Linux_Port_Rhel_Rsh - Fatal编程技术网

Linux RSH:端口不足

Linux RSH:端口不足,linux,port,rhel,rsh,Linux,Port,Rhel,Rsh,我有一个问题,当使用RSH远程启动脚本时,我的端口将用尽 我有一个脚本,我需要运行,已经推出到每个服务器。 我有一个服务器列表(hostfilelist) 基本上,我有一个简单的循环,可以并行运行它们 for host in `cat hostfilelist`; do rsh $host ksh script.ksh & done 问题是有2k台服务器,我达到了512的限制(根据我读过的文档,假设RSH的端口范围是512-1023) 我该如何解决这个问题呢?使用您的代码,您不仅会遇到

我有一个问题,当使用RSH远程启动脚本时,我的端口将用尽

我有一个脚本,我需要运行,已经推出到每个服务器。 我有一个服务器列表(hostfilelist)

基本上,我有一个简单的循环,可以并行运行它们

for host in `cat hostfilelist`; do
rsh $host ksh script.ksh &
done
问题是有2k台服务器,我达到了512的限制(根据我读过的文档,假设RSH的端口范围是512-1023)


我该如何解决这个问题呢?

使用您的代码,您不仅会遇到rsh的“安全”端口限制,还可能会遇到文件描述符限制(请使用
ulimit-n
);每个网络连接也使用一个文件描述符

您使用代码所做的是遍历hostfilelist,并为每个主机运行一个rsh命令,该命令放在后台(在源服务器上)并使用符号and。这些连接中的每一个都在后台保持打开状态,直到远程主机上的脚本完成

在这种情况下,最好将脚本的执行放在每个远程主机的后台,这样在启动远程作业后,rsh命令会立即返回,从而再次释放网络连接(和端口)。为此,请将代码中的第二行重写为

rsh$host“ksh script.ksh&”

但是,如果事情发生得太快,您仍然可能会遇到端口重用问题(请参阅netstat输出上的TIME\u WAIT status)


我强烈建议放弃rsh,改用ssh。

我正在运行的这个脚本是一个发现脚本,用于识别Unix环境中所有其他依赖于R协议的脚本/作业,因此我们可以将它们升级为使用ssh,然后关闭R协议。理想情况下,我会使用ssh,但是对于这个环境,所有的后端基础设施还没有完全就绪。