Linux で構成ファイルまたはスクリプトを検証する 30 の方法


構成構文のチェックおよび/またはテストは、アプリケーションまたはサービスの構成ファイルに変更を加えた後、または更新を実行した後に実行する重要なステップです。これにより、構成エラーが原因でサービスの再起動に失敗する可能性を減らすことができます。

いくつかのアプリケーション/プログラムまたはサービス デーモンには、構成ファイルの構文が正しいかどうかをチェックするコマンドが付属しています。 Linux システムで一般的なアプリケーションとサービスのリストと、それらの構成ファイルをテストまたは検証する方法をまとめました。

注: root ユーザーとしてサーバーにログオンしていない場合に使用します。一部のサービスは root 権限で実行され、それらの構成ファイルを確認するには root ユーザー権限が必要なため、コマンドの呼び出し中に必要に応じて sudo コマンドを使用することを忘れないでください。

1.須藤コマンド

--check または -c コマンド ライン オプションをサポートする visudo コマンドを使用して、sudo 構成ファイルの構文を確認し、編集なしでファイルのみを検証できます。 -f オプションは、エラー メッセージを表示し、編集用にファイルを開きます。

# visudo -c /etc/sudoers
OR
# visudo -c /etc/sudoers.d/my_config
OR
# visudo -f /etc/sudoers.d/my_config

2.バッシュスクリプト

次のようにして、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ウェブサーバー

NGINX 構成ファイルを確認するには、 -t フラグを指定して nginx コマンドを実行します。別の構成ファイルを指定するには、 -c フラグを使用します。

# nginx -t
OR
# nginx -t -c /etc/nginx/conf.d/example.com.conf

7. PHP-FPM

php-fpm 構成ファイルを確認するには、次のコマンドを実行します。 -t フラグを 2 回 (-tt) 呼び出すと、終了する前に構成がダンプされることに注意してください。

# php-fpm -t
OR
# php-fpm -tt

8.アパッチウェブサーバー

次に、次のコマンドを使用して 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.ポンドリバースプロキシ

サーバーを起動する前に、Pound サーバー構成ファイルを解析できます。他の引数を指定せずに -c フラグを指定して pound コマンドを実行し、デフォルトの構成ファイルを確認します。 -f コマンド ライン オプションを使用して、別の構成ファイルを指定できます。

# pound -c
OR
# pound -f /path/to/config/file -c

13. Varnishd HTTP アクセラレータ

varnishd VCL (Varnish Configuration Language) ファイルの構文にエラーがないかどうかを確認するには、次のコマンドを使用します。すべてが 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.キャディウェブサーバー

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.監視ツールの監視

-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 サーバー構成の構文を確認します。すべてが OK の場合はエラー コード 0 で終了します。それ以外の場合は、ゼロ以外のエラー コードで終了し、次のエラー メッセージを表示します。

# doveconf 1>/dev/null
# echo $?

25. Samba ファイルサーバー

次のコマンドを使用して、Samba ファイル サーバーの構成ファイルを確認できます。

# testparm -v

26.syslogd/Rsyslogd

-N1 オプションを指定して rsyslod コマンドを呼び出すと、デバッグ モードが有効になり、デフォルトの構成ファイルの構文エラーもチェックされます。 -f フラグを使用して、カスタム構成ファイルを読み取ります。

# rsyslogd -N1

27. DNS (バインド) サーバー

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

このガイドで説明したのはこれだけです。ご意見をお寄せいただくか、下のフィードバック フォームからご質問をお寄せください。ここにリストされていないアプリケーションまたはサービスの構成構文を確認する方法の例をさらに共有することもできます。あなたの例を喜んでガイドに追加します。