繁体   English   中英

如何在不运行dhcpd的情况下检查dhcpd.conf是否存在语法错误?

[英]How can I check dhcpd.conf against syntax error without running dhcpd?

我需要确保dhcpd.conf上没有语法错误。 如果有错误,我想得到它们是什么。

我可以使用此命令检查语法错误:

dhcpd -cf /path/to/dhcpd.conf

但除了我得到的错误之外,还会打印很多信息。 另一件事是我不想运行dhcpd,即使没有语法错误。 我只想检查语法错误并查看它们是什么。


不幸的是,运行dhcpd -tf /path/to/dhcpd.conf也无法解决我的问题。

您正在寻找的语法是

dhcpd -t -cf /path/to/dhcpd.conf

-t选项将执行配置检查:

如果指定了-t标志,则服务器将仅测试配置文件的语法是否正确,但不会尝试执行任何网络操作。 这可用于在安装之前自动测试新配置文件。

如果使用默认配置文件路径,则不需要使用-cf

/usr/sbin/dhcpd -t

您尝试使用-tf /path/to/...那个是非常不同的,并且与跟踪有关。

手册页上没有涉及的一件事是,“/ usr / sbin / dhcpd -t”命令使用返回值来指示配置是否正确。

如果没有错误,它将返回零。 如果有语法错误,它将返回非零(我做的测试为1)

所以你可以使用类似的东西:

/usr/sbin/dhcpd -t
if [ $? -ne 0 ]; then
  echo "Configuration has errors, aborting"
fi
/bin/systemctl restart isc-dhcp-server

在尝试使用新版本重新启动服务器之前,检查对配置所做的更改是否有效。

不幸的是,我认为没有任何选择只显示错误。 可以使用文本解析工具(awk,python等)删除标题行(对于我的版本,一切都以“For info”开头的行)和预告片行(对于我有的版本) ,一行后面的一行说“遇到配置文件错误 - 退出”,这只会留下语法错误和位置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM