Linux で構成ファイルまたはスクリプトを検証する 30 の方法
構成構文のチェックやテストは、アプリケーションまたはサービスの構成ファイルに変更を加えた後、または更新を実行した後でも実行する重要な手順です。これにより、構成エラーによりサービスの再起動が失敗する可能性が低くなります。
いくつかのアプリケーション/プログラムまたはサービス デーモンには、構成ファイルの構文が正しいかどうかをチェックするコマンドが付属しています。 Linux システム上の一般的なアプリケーションとサービスのリストと、それらの構成ファイルをテストまたは検証する方法をまとめました。
注: root ユーザーとしてサーバーにログオンしていない場合に使用します。一部のサービスは root 権限で実行され、構成ファイルの確認には root が必要であるため、コマンドを呼び出す際には、必要に応じて sudo コマンドを使用することを忘れないでください。ユーザー権限。
1. Sudoコマンド
visudo コマンドを使用して sudo 設定ファイルの構文をチェックできます。このコマンドは、--check
または -c
コマンド ライン オプションをサポートしており、編集なしのファイル。 -f
オプションはエラー メッセージを表示し、編集用にファイルを開きます。
# visudo -c /etc/sudoers OR # visudo -c /etc/sudoers.d/my_config OR # visudo -f /etc/sudoers.d/my_config

2.Bash スクリプト
次のようにして、Bash スクリプトの構文エラーをチェックできます。
# bash -n /path/to/scriptname.sh

3. Perl スクリプト
Perl スクリプトの構文エラーをチェックするには、次のコマンドを使用します。
# perl -c /path/to/scriptname
4. Systemd ユニット ファイル
「systemd-analyze verify」 コマンドを使用すると、systemd ユニット ファイルの構文エラーをテストできます。ユニット ファイルがロードされ、エラーが検出された場合は警告が表示されます。
デフォルトでは、コマンドラインで引数として指定されたファイルと、それらのファイルによって参照される他のユニットがロードされます。
# systemd-analyze verify /etc/systemd/system/test.service

5. OpenSSHサーバー
sshd 構成ファイルの有効性とキーの健全性を確認するには、次のコマンドを実行します。特定の構成ファイルを確認するには、-f
フラグを使用してファイルを指定します。
# sshd -t
6. NGINX Webサーバー
NGINX 構成ファイルを確認するには、-t
フラグを指定して nginx コマンドを実行します。別の構成ファイルを指定するには、-c
フラグを使用します。
# nginx -t OR # nginx -t -c /etc/nginx/conf.d/example.com.conf

7. PHP-FPM
php-fpm 設定ファイルを確認するには、次のコマンドを実行します。 -t
フラグを (-tt)
で 2 回呼び出すと、終了する前に設定がダンプされることに注意してください。
# php-fpm -t OR # php-fpm -tt
8. Apache Webサーバー
次のコマンドを使用して、Apache Web サーバー構成ファイルを確認できます。
# apachectl configtest
あるいは、RedHat ベースのディストリビューションで次のコマンドを使用することもできます。
# httpd -t
Debian ベースのディストリビューションでは、次を実行します。
# apache2ctl -t
9. HAProxy TCP/HTTP ロードバランサ
HAProxy の構成は、次のコマンドを使用してテストできます。 -f
オプションでファイルを指定し、-c
でテスト モードを有効にします。
# haproxy -f /etc/haproxy/haproxy.cfg -c

10. Lighttpd HTTP サーバー
次のコマンドを実行して、Lighttpd の構成ファイルの構文をテストします。 -t
コマンドライン オプションを使用すると、Lighttpd はデフォルト設定ファイルの構文エラーをテストして終了できます。 -f
フラグを使用して、カスタム構成ファイルを指定します。
# lighttpd -t OR # lighttpd -t -f /path/to/config/file
11. アパッチトムキャット
Tomcat Web サーバーでは、基本的な構成構文チェックが可能です。まず、Tomcat のインストール ディレクトリに移動し、次のコマンドを実行します。
# ./bin/catalina.sh configtest OR # $TOMCAT_HOME/bin/catalina.sh configtest
12.ポンドリバースプロキシ
サーバーを起動する前にポンドサーバー構成ファイルを解析できます。 -c
フラグを指定し、他の引数を指定せずに pound コマンドを実行して、デフォルト設定ファイルを確認します。 -f
コマンド ライン オプションを使用して、別の構成ファイルを指定できます。
# pound -c OR # pound -f /path/to/config/file -c
13. Varnishd HTTP アクセラレータ
varnishd VCL (Varnish 構成言語) ファイルの構文にエラーがないか確認するには、次のコマンドを使用します。すべてがOKであれば、ワニスは生成された構成をダンプします。それ以外の場合は、エラーのあるファイル内の特定の行番号を表示します。
# varnishd -C OR # varnishd -f /etc/varnish/default.vcl -C
14. Squid プロキシ キャッシュ サーバー
Squid プロキシ キャッシュ サーバーの Squid 構成ファイルを渡すには、次のコマンドを発行します。 -k
オプションを parse または debug サブコマンドと一緒に使用すると、squid デーモンに設定ファイルを解析するか、デバッグ モードを有効にするようそれぞれ指示します。
# squid -k parse # squid -k debug
15. キャディ Web サーバー
Caddy Web サーバー構成のエラーを明らかにするには、次のコマンドを発行します。最初の設定ではデフォルトの設定を確認します。代わりに、--config
コマンド ライン オプションを使用して設定ファイルを指定します。
# caddy validate OR # caddy validate --config /path/to/config/file
16. vsftpd FTPサーバー
次のコマンドを実行して、vsftpd FTP サーバーの構成ファイルをテストします。
# vsftpd OR # vsftpd -olisten=NO /path/to/vsftpd.testing.conf
17. DHCPDサーバー
-t
フラグを指定して dhcpd コマンドを実行して、dhcpd サーバーの設定構文を確認します。
# dhcpd -t OR # dhcpd -t -cf /path/to/dhcpd.conf
18. MySQLデータベースサーバー
次のコマンドを使用して、MySQL データベース サーバー構成ファイルの構文をテストします。コマンドの実行後、エラーがなければサーバーは終了コード 0 で終了します。それ以外の場合は、診断メッセージを表示して終了コード 1 で終了します。 :
# mysqld --validate-config
19. MariaDB データベースサーバー
MariaDB データベース サーバーに使用されるのと同じコマンドは、Mariadb データベース サーバー構成ファイルの構文をチェックするためにも機能します。
# mysqld --validate-config
20.PostgreSQLサーバー
次のスクリーンショットは、PostgreSQL 構成ファイル内のエラーを示しています。

このようなエラーを検出するには、postgres データベース ユーザー アカウントに切り替えて、psql シェルにアクセスします。次に、コマンドを実行して構成ファイル内のエラーを特定します。
postgres=# select sourcefile, name,sourceline,error from pg_file_settings where error is not null;

21. Nagios監視ツール
Nagios 構成を確認するには、-v
フラグを指定して nagios コマンドを実行します。
# nagios -v /usr/local/nagios/etc/nagios.cfg
22.Monit監視ツール
-t
フラグを指定して monit コマンドを実行し、デフォルトの Monit コントロール ファイルの構文チェックを実行します。 -c
フラグを使用して、特定の制御ファイルを指定できます。
# monit -t OR # monit -t -c path/to/control/file
23. Postfixメールサーバー
次のコマンドは、Postfix の設定ファイルの構文エラーをチェックするのに役立ちます。
# postfix check
この 2 番目のコマンドは、最初のコマンドよりも冗長です。
# postfix -vvv

24. Dovecot IMAP サーバー
doveconf コマンドを使用して、Dovecot IMAP サーバー設定の構文を確認します。すべてが正常であれば、ゼロのエラー コードで終了します。それ以外の場合は、ゼロ以外のエラー コードで終了し、次のエラー メッセージが表示されます。
# doveconf 1>/dev/null # echo $?
25. Sambaファイルサーバー
次のコマンドを使用して、Samba ファイル サーバー構成ファイルを確認できます。
# testparm -v
26. Syslogd/Rsyslogd
-N1
オプションを指定して rsyslod コマンドを呼び出すと、デバッグ モードが有効になり、デフォルト設定ファイルの構文エラーもチェックされます。 -f
フラグを使用してカスタム構成ファイルを読み取ります。
# rsyslogd -N1

27. DNS (BIND) サーバー
次のようにして、DNS の名前付き設定ファイルを確認できます。
# named-checkconf /etc/named.conf
28. NTP – ネットワークタイムプロトコル
ntpd 設定構文は、次のコマンドを使用してテストできます。-d
フラグは冗長デバッグ モードを有効にし、-f
は周波数ドリフト ファイル名を指定します。 -n
はフォークがないことを意味します。
# ntpd -d -f /etc/ntp.conf -n
29. OpenStack-Ansible
次のコマンドを実行して、OpenStack-ansible 構成ファイルの構文を確認します。
# openstack-ansible setup-infrastructure.yml --syntax-check
30.ログローテート
logroate (ログ ローテーション機能) 構成ファイルをデバッグするには、-d
オプションを指定して logrotate コマンドを実行し、構成ファイルを指定します。
# logrotate -d /etc/logrotate.d/nginx
このガイドで説明した内容は以上です。ご意見をお聞かせいただくか、以下のフィードバック フォームからご質問ください。ここにリストされていないアプリケーションやサービスの構成構文を確認する方法の例をさらに共有することもできます。喜んであなたの例をガイドに追加させていただきます。