よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

[Linux] 構文チェック

ミドルウェアの設定ファイルを変更した場合、ミドルウェアのデーモンの再起動が必要となることがありますが、設定を書き換えて再起動したら、構文チェックでエラーになってしまうことがあります。失敗するとすごい惨めになってしまいますよね。#本番サービスの場合は、惨めでは済みませんね。

このようなことを避けるために、事前に構文チェックをする癖をつけましょう。
ミドルウェアに限らず、スクリプト言語などにおいても確認するようにしておくと、単純なミスは防げます。

以下にいくつかのミドルウェア/スクリプト言語で構文チェックするときのオプションを紹介します。

lighttpd

tオプションを指定することで、シンタックスのチェックを実施し、fオプションでconfigファイルを指定します。

/usr/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf

さらに、configファイルを解析した結果を表示させる場合は、pオプションを指定するとよいです。

apache

configtestを指定することで構文チェックができます。

/etc/init.d/httpd configtest

ubuntuの場合は、以下のようにするとよいです。

/usr/sbin/apache2ctl configtest

試してはいませんが、centosなどを利用している場合は、以下でも構文チェックできるはずです。
ちなみtオプションでシンタックスチェック、fオプションでconfigファイルを指定します。

/usr/sbin/httpd -t -f /etc/httpd/httpd.conf

nagios

vオプションを指定し、nagiosの設定ファイルを指定します。

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Ruby

cオプションを指定します。

$ ruby -c ファイル名.rb

シェル(sh)

nオプションを指定します。

$ sh -n ファイル名.sh

また、xオプションを指定すれば、実行中の変数の状態などをチェックをすることもできます。

monit

tオプションを指定します。

$ sudo monit -t

logrotate

dオプションを指定し、デバッグモードで起動します。
vオプションで詳細を表示します。

$ sudo logrotate -vd /etc/logrotate.conf

出力結果に、"error"が含まれていないことを確認しましょう。

named

zoneファイルの設定チェックをする場合は、named-checkzoneコマンドを利用します。
引数1つ目でドメイン名、2つ目で該当zoneファイルを指定します。

$ named-checkzone example.jp example.jp.zone


様々なミドルウェアおよびプログラミング言語で構文チェックをすることができますが、今回はこの位にしておきます。#自分がよく利用するから書いただけというわけではないですよ。たぶん。