.................................................
.............................
何となくリンク
.............................
|
|
|
アクセス解析を数日前より、さくらサーバに移動させた。
今使ってるアクセス解析のログは YYYYMMDD.cgiという名前で作られ、
古いログを自動で削除する機能はありません。
こまめに削除しないと、大量のログが残り続ける羽目になる。
なので、適度に削除してたんですが、流石に面倒になってきた。
直接、CGIを修正して削除機能を組み込めば良いんですが、
知識がないので出来ない。
結論から言うと、CRON(自動実行JOB)を使って自動削除させるようにした。
※さくらサーバはCRONが組み込める。
毎日、3日前のログを削除するというCRONを作成することにした。
さくらサーバはFreeBSDなので、dataコマンドの仕様が少々異なっており、
ネットで調べました。
3日前の日付を、YYYYMMDD形式で表示する方法のは以下で実現できた。
date -v -3d +%Y%m%d.cgi
早速、CRONに以下のコマンドを設定。
/bin/rm -f 削除対象の絶対パス/access_log.`date -v -3d +%Y%m%d`.cgi
access_log.`date -v -3d +%Y%m%d`.cgi がファイル名です。
今日実行された時のファイル名は access_log.20080606.cgi になります。
rm はファイルを削除するコマンドで、-f は確認を求めないオプション。
デフォルトで -i (確認求めるオプションが設定されていた為、-f が必要と判断した)
ところが、上手く作動しなかった。
原因を調べた所、CRONの仕様書に以下のような注意が記載されてた。
>コマンド内のパーセント記号 (%) はバックスラッシュ (\) でエスケープされない限り改行文字に変換され、その最初の % 以降の全てのデータはそのコマンドの標準入力となります。
最終的に、\で%をエスケープさせて問題解決しました。
date -v -3d +\%Y\%m\%d
現在、アクセス解析は3日分のログだけ見れるようになってます。
0:00〜0:01の間は4日分のログが存在します。
CRONの実行時間を 0:01 にしているため。
関連〆 年変わり同時更新に関して思ったこと
|
|
|