Dhcpd.confに構文エラーがないことを確認する必要があります。エラーがある場合は、エラーを取得したいと思います。
このコマンドで構文エラーをチェックできます:
dhcpd -cf /path/to/dhcpd.conf
しかし、それは私が得たエラーに加えて多くの情報を出力します。もう1つは、構文エラーがない場合でも、dhcpdを実行したくないということです。構文エラーをチェックして、その内容を確認したいだけです。
残念ながら、dhcpd -tf /path/to/dhcpd.conf
も私の問題を解決しませんでした。
あなたが探している構文は
dhcpd -t -cf /path/to/dhcpd.conf
-t
オプションは設定チェックを行います:
-tフラグが指定されている場合、サーバーは構成ファイルの正しい構文をテストするだけですが、ネットワーク操作は実行しません。これを使用して、新しい構成ファイルをインストールする前に自動的にテストできます。
デフォルトの設定ファイルパスを使用している場合は、-cf
を使用する必要はありません。
/usr/sbin/dhcpd -t
-tf /path/to/...
で試したものはまったく異なり、トレースに関連しています。
マニュアルページにない、ここではまだカバーされていないことの1つは、「/ 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など))を使用してヘッダー行を削除することができます(私が持っているバージョンでは、「情報」で始まる行まですべて)、とトレーラー行(私が持っているバージョンでは、「構成ファイルのエラーが発生しました-終了しています」という行の後のすべて)構文エラーと場所だけを残します