是否可以通过管道将配置文件传输到 hostapd?

是否可以通过管道将配置文件传输到 hostapd?

我使用 Raspberry Pi(Stretch)作为 WiFi 接入点进行一些测试。因为我想在许多 RP 上使用一个全局配置文件,所以我将其分为hostapd.conf两部分:

  1. hostapd.conf.global- 描述了我的 WiFi 接入点的几乎所有参数。
  2. hostpad.conf.local- 保存特定 RPi 的 SSID 的位置。

是否可以加入这 2 个配置文件并将其作为一个文件发送到 hostapd?
我尝试过的是发送:

cat hostapd.conf.global hostapd.conf.local | hostapd -dd (管道命令)

但结果我得到了 hostapd 的帮助。

我也尝试过

cat hostapd.conf.global hostapd.conf.local > hostapd.conf && sudo hostapd -dd hostapd.conf

这可行,但不是管道命令相当于这个?
我对管道的理解完全错误吗?

答案1

操作符将一个命令|连接到下一个命令。这仅适用于作为输入的下游命令。STDOUTSTDINSTDIN

hostapd似乎没有为此的参数(许多命令允许您提供-文件名以表明您希望它从中读取STDIN)。因此,您无法将配置通过管道传递给它,因为它不知道如何使用它。

你可以尝试:

cat hostapd.conf.global hostapd.conf.local | hostapd -dd /dev/stdin

看看是否有效。

这表明hostapd要用作/dev/stdin其配置文件...因为您已将配置文件通过管道传输到STDIN,这应该会产生预期的效果。

答案2

另一种选择是使用某种配置管理;这可能很简单Makefile

hostapd.conf: hostapd.conf.global hostapd.conf.local
        @cat hostapd.conf.global hostapd.conf.local > hostapd.conf

然后make hostapd.conf在运行之前输入该目录hostapd。在更复杂的方面,Ansible 和其他此类软件可以扩展到更多数量的主机,这可能比 a 更好Makefile(相应地,您必须了解和处理的事物规模也更大)。

相关内容