0

我想要达到的目标

  • 用户将提供一个可以远程执行的命令。命令(用于远程执行的协议)可以是 SSH/RSH ......等等。所以我希望它成为配置文件或模板文件的一部分(假设参数在协议中是固定的),如下例所示 -

template.cfg 文件(由用户配置):

ssh $ip $commandList  
  • 我将在另一个数据文件中生成一个值列表,其中包含 IP 地址和命令列表。像

    10.182.215.214|echo $UNAME
    10.251.142.142|echo $SHELLNAME
    
  • 我想要一个脚本调用它driver.sh,它在执行时会使用从模板到另一个执行脚本的命令生成实际的脚本/脚本 -execute.sh

问题

  1. 如何根据模板/插件生成脚本(可以随意提供命令)?
  2. 如果数据是在在线应用程序 (C/C++) 中生成的,除了正常的基于文件的操作(从 cfg 文件读取并更新execute.sh)之外,还有什么更好的方法吗?
4

2 回答 2

1

1.

while IFS=\| read ip commandList
do  eval echo $(<template.cfg)
done <data >execute.sh

您可能想要引用data文件中的变量扩展。

2. 由于您希望用户提供的命令成为配置文件的一部分,我认为只能从 cfg 文件中读取;另一方面,您可以直接执行生成的命令,而不是将它们写入execute.sh.

于 2014-04-07T06:50:06.373 回答
0

这几乎看起来好像您正在尝试重新实现自动配置工具,例如puppetchef。击败ssh循环。

Puppet 包含一个名为 的模块facter,用于报告/收集有关远程系统的各种数据。

所有这些工具都需要一些设置(公钥/私钥对、软件安装)。它们都具有内置日志记录的优势 - 有利于审计。

于 2012-08-09T22:09:32.747 回答