首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将主机名附加到局域网中不同服务器的单个文本文件中

如何将主机名附加到局域网中不同服务器的单个文本文件中
EN

Stack Overflow用户
提问于 2012-12-06 17:34:31
回答 1查看 3.2K关注 0票数 0

我通过在多个服务器上运行一个脚本来安装一个应用程序(比如10台),最后我需要得到一个服务器列表,这些服务器都是在一个文件中运行的。例如:

代码语言:javascript
复制
Server-1
Server-2
Server-3.....Server-10

我试过这样做,但是它只使用这个主机名在本地框上创建agent_name_list.txt。

您知道如何才能获得代理在一个地方安装的服务器的综合列表吗?

代码语言:javascript
复制
agent_name='hostname'
nslookup $agent_name | grep Name | awk '{print $2}' >  /var/tmp/$agent_name_list.txt 
EN

回答 1

Stack Overflow用户

发布于 2012-12-06 23:53:07

我不清楚您想要实现的确切输出是什么,但我看到了您需要对代码进行的两个修复:

代码语言:javascript
复制
agent_name=$(hostname)
nslookup $agent_name | grep Name | awk '{print $2}' >  /var/tmp/${agent_name}_list.txt 

这可以进一步简化为

代码语言:javascript
复制
agent_name=$(hostname)
nslookup $agent_name | awk '/Name/{print $2}' >  /var/tmp/${agent_name}_list.txt 

awk的许多特性之一是匹配模式,并将其操作限制在与之匹配的线条上。

注释

代码语言:javascript
复制
agent_name='hostname'

在这里,您只是将agent_name的值设置为字符串值"hostname“--注意上面是如何使用hostname命令替换特性来捕获hostname命令的当前值的。

代码语言:javascript
复制
nslookup $agent_name | grep Name | awk '{print $2}' >  /var/tmp/$agent_name_list.txt 

在这里,您需要使用变量"wrappers“{},这样shell就不会试图将$agent_name_list计算为变量。因为您已经为agent_name分配了一个值,所以agent_name_list没有值。在总结一个前导'$‘字符时,{}包装器告诉shell“这是一个变量名,值是多少?”

如果上面更正的示例没有完全解决您的问题,请考虑编辑您的消息以包含示例输入数据、给定示例数据、当前代码和当前代码的输出。

IHTH

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13749257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档