この記事は会員限定です。会員登録すると全てご覧いただけます。
本稿執筆時点のRed Hat系のLinuxであれば、標準パッケージのApacheインストール直後にあらかじめログファイル容量の肥大化を回避するツール「logrotate」が含まれている。
# rpm -qa | grep logrotate logrotate-3.3.2-1
このため、次のようなスクリプトを自ら作成する必要はないだろう。しかし、自分の環境には含まれていない、またはスクリプトの処理内容を知ってみたいという人には参考にしてほしい。
次のスクリプトは、Apacheのログを月ごとにバックアップして毎月1日の0時にcronで動かすことを想定しているものだ。
#!/bin/sh APACHEDIR=/usr/local/apache LOGDIR=/var/log/httpd LOG=access_log DATE='/sbin/date "+%Y%m"' if [ -x $APACHEDIR/bin/apachectl ]; then $APACHEDIR/bin/apachectl stop # apache stop cd $LOGDIR mv $LOG $LOG.$DATE touch $LOG $APACHEDIR/bin/apachectl start # spache start fi
1行目は、動作させるシェルの指定(#!/bin/sh)、2〜5行目は変数指定である(xxxxxx=)。それぞれの変数にディレクトリやファイル名を代入している。
「if」以下の行が処理内容になるが、主にapcaheのコントロールコマンド「apachectl」を使い、停止している際にログファイルをバックアップして新たなファイルを作成するという手順だ。
Copyright © ITmedia, Inc. All Rights Reserved.