cronを用いて定期的にアクセスログを管理する方法

今回はcronを用いて定期的にアクセスログを管理する方法について記述する。 今回の例では毎日accesslog.(日時)という名前でアクセスログを生成するということにする。

1:cronが作動しているかの確認

以下のコマンドで確認ができる

service crond status

また、以下のコマンドで設定ファイルを確認できる

ls /etc/ | grep cron

無事実行が確認されたら次のステップへ。

2:ファイル名の設定をする

日毎に保存してもファイル名がわかりにくければ整理した意味がないのでファイル名をわかりやすくする。

#! /usr/bin/sh

cd /etc/http/logs/
mv access_log access_log.`date '+%y%m%d-%H%M'`

このコマンドによってApacheが生成したaccesslogというファイル名をaccesslog.(日時) のように生成することができる。

3:cronの設定をする

最後にcronに日時と実行する命令を与えることで完了となる。 まず以下のコマンドでcrontabの初期設定を確認してみよう。

cat /etc/crontab

次にroot権限で以下のコマンドを実行する。

crontab -e

これで入力を行える。 -eのオプションによって設定を行う事ができる。 書式は”分 時 日 月 曜日 コマンド” となっていて、日時指定の欄に”*”を入力することによって指定なしとすることができる 今回は毎日の0時0分に設定してみる

0 0 * * * sh /root/access_log.sh

これで毎日の0時0分にaccess_log.shを実行することができる。 すなわち、毎日0時0分にアクセスログをaccesslog.(日時)というファイル名で保存できる。