簡體   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