事半功倍:使用脚本与实用程序跨所有 IBM AIX 服务器快速运行命令.docx

事半功倍:使用脚本与实用程序跨所有 IBM AIX 服务器快速运行命令.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
事半功倍:使用脚本和实用程序跨所有 IBM AIX 服务器快速运行命令简介在大多数公司中,系统管理员都被要求使用更少的资源做更多的事。由于采用了虚拟化技术(比如 IBM PowerVM?),系统管理员必须管理的 IBM? AIX? 实例数量已显著增长。PowerVM支持在单个硬件上运行数十或者甚至数百个 IBM AIX 逻辑分区 (LPAR)。多年前,系统管理员可能仅负责管理二十几个 AIX 实例,而在如今的环境中,系统管理员需要管理数百个 AIX LPAR 的情形很普遍。如果您处在一个具有许多 LPAR 的大型 AIX 环境中,在需要更改或需要从每个服务器收集信息时,登录到每个服务器是不切实际的。在这些大型环境中,最佳的选择是谨慎地使用支持跨许多服务器快速运行命令或脚本的技术。本文将介绍跨大量服务器运行命令和脚本的多种选择。SSH 密钥概述本文中讨论的所有选择都需要在一个中央管理服务器与其余服务器之间设置 SSH 密钥。第一步是挑选一个要使用的中央管理服务器。您挑选的服务器应该能够尽可能安全地访问您环境中的其他所有服务器。一个选择是为此用途创建一个新 LPAR,并尽可能多地锁定它。其他潜在的选择包括 Network Installation Manager (NIM) 服务器或系统监视服务器。下一步是挑选一个要使用的用户帐户。您希望自动完成的许多任务可能需要根用户特权。但是,由于前缀的安全问题,不推荐直接使用根帐户。一个不错的替代方案是,创建一个正常的用户帐户,并使用实用程序(比如?sudo)为它授予根用户访问权。在确定要将哪个服务器用作中央管理服务器并确定了一个用户帐户后,下一步是生成一个 SSH 密钥。已有许多介绍 SSH 密钥的教程,本文不再详细探讨该主题。基本上讲,您需要使用?ssh-keygen?命令在中央管理服务器上创建一个私钥和公钥。私钥仅在中央管理服务器上使用,而公钥可复制到其他所有服务器。需要在每个服务器上建立一个新用户帐户,在用户的主目录中创建一个 “.ssh/authorized_keys” 文件并将公钥放入其中。如果计划以根用户级访问权来运行命令,还应设置?sudo?或类似实用程序,向用户授予其他访问权。如果使用?sudo,那么可以使用 “NOPASSWD” 选项,这样?sudo就不会再提示用户输入密码。要验证 SSH 密钥是否有效,可以尝试使用?ssh?在一个服务器上运行一个远程命令,比如?hostname。例如,如果服务器名称为 “server1”,那么您应该能够键入?ssh server1 hostname,响应应该为?server1。在使用?sudo?时,您应该能够运行?ssh server1 sudosu -c whoami?命令来验证此情况,最后应返回root。回页首使用一个简单的?for?循环在多个服务器上运行单个命令远程运行一个命令的一种方法是,使用一个简单的一行循环命令。要在其上运行该命令的服务器名称将从一个文件中读取。该文件的每一行有一个服务器名称。清单 1 显示了在多个服务器上运行?for?循环命令行的示例。清单 1. 一个ssh?for?循环的示例for server in `cat serverlist`; do printf %-20s $server; ssh -q -o BatchMode yes $server oslevel -s 21; echo; done | grep -v ^$我们详细分析一下这个示例:for server in `cat serverlist`; do?– 创建一个循环,让?serverlist?文件中的每个服务器将由该循环处理,而且服务器名称将被设置为$server?变量。printf %-20s $server;?– 显示服务器的名称,通过填入空格来保持左对齐。这将导致服务器名称被整齐地输出。ssh -q -o BatchMode yes $server oslevel -s 21;?– 使用两个选项来调用ssh命令。-q?选项阻止显示登录窗口。-o BatchMode yes?选项导致 SSH 在一个批处理模式下运行,而不提示用户输入任何信息。$server?将通过?for?循环更改为当前服务器的名称。在本示例中,oslevel -s?是我们需要在远程服务器上运行的命令。21?选项用于将标准错误重定向到标准输出。没有此选项,输出可能是乱序的,因为没有缓冲区来暂存标准错误。echo; –?确保无论该命令是否生成输出,光标都会移动到下一行,以便让循环中的下一个服务器名称排列在正确的位置上。为此,在每行结尾处都会使用一个回车,如果在执行命令之后没有返回输出,则设置了正确的格式。如果执行命令之后生成了输出,则会产生一个额外的空白行,但在下一步

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档