Linux設定ファイルをチェックするコマンド

D
2022-12-13
2022-12-13

おつかれさまです。Dです。

ApacheやPostfix等Linuxにインストールしたミドルウェアの
設定ファイルを編集する機会あると思います。

設定ファイルが誤った構文のままサービスをリロード等して反映させようとすると
サービスのステータスがfailになり、思わぬ事故に発展してしまいます。

そんな時の設定ファイルを編集後に構文をチェックしてくれる
コマンドがあるので代表的なサービスのコマンドを紹介していきたいと思います。

内容

まずはWebサーバーですね。
Apacheとnginxが代表的かと思います。

Apacheは以下のコマンドで設定ファイルをチェック出来ます。


=====================================================
apachectl configtest
httpd -t
=====================================================

※どちらも同じ機能のコマンドなので好きな方をどうぞ。

問題無ければ以下のように「Syntax OK」と表示されます。


=====================================================
# apachectl configtest
Syntax OK

# httpd -t
Syntax OK
=====================================================

不備がある場合は以下のようにどのファイルの何行目がおかしいか教えてくれます。


=====================================================
# apachectl configtest
AH00526: Syntax error on line 351 of /etc/httpd/conf/httpd.conf:
parameter must be 'on' or 'off'

# httpd -t
AH00526: Syntax error on line 351 of /etc/httpd/conf/httpd.conf:
parameter must be 'on' or 'off'
=====================================================

nginxは以下のコマンドでチェック出来ます。問題無ければ以下のように「syntax is ok」と「successful」が表示されます。


=====================================================
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
=====================================================

こちらも不備があればどのファイルの何行目がおかしいか教えてくれます。


=====================================================
# nginx -t
nginx: [emerg] unknown directive "rror_page" in /etc/nginx/nginx.conf:50
nginx: configuration file /etc/nginx/nginx.conf test failed
=====================================================

次はメールサーバーでよく使われるPostfixのコマンドです。
不備が無ければ何も表示されません。


=====================================================
# postfix check
=====================================================

若干表現が変わりますが、こちらも不備があればどのファイルの何行目がおかしいか教えてくれます。


=====================================================
# postfix check
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: mtp_tls_CAfile=/etc/pki/tls/certs/ca-bundle.crt
=====================================================

最後にFTPサーバーでよく使われるVsftpdのコマンドです。
こちらも不備が無ければ何も表示されません。


=====================================================
# vsftpd
=====================================================

こちらはApacheやnginx、postfixと違って誤っている箇所しか教えてくれないので
設定ファイルも含め確認する必要があります。


=====================================================
# vsftpd
500 OOPS: unrecognised variable in config file: isten_ipv6
=====================================================

【まとめ】

どうしても人間がファイルを編集すると凡ミスすることがあるかと思いますが
このような便利コマンドを使用して誤りを未然に防ぐことが出来ます。

思わぬ事故になる前に設定ファイルを編集した後は確認することをお勧めします。