.................................................
<< 08年06月 >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30


最近のコメント
10/07 北本
09/29 拝承
07/28 北本
07/20 ばてれん
10/26 北本
.............................
何となくリンク
.............................

2020年
02月
05月
2019年
04月 05月
08月 09月
2018年
01月 02月 03月
04月 05月 06月
09月
10月
2017年
01月 02月 03月
04月 05月 06月
07月 08月 09月
10月 11月 12月
2016年
01月 02月 03月
04月 05月 06月
07月 08月 09月
10月 11月 12月
2015年
01月 02月 03月
04月 05月 06月
07月 08月 09月
10月 11月 12月
2014年
01月 02月 03月
04月 05月 06月
07月 08月 09月
10月 11月 12月
2013年
01月 02月 03月
04月 05月 06月
07月 08月 09月
10月 11月 12月
2012年
01月 02月 03月
04月 05月 06月
07月 08月 09月
10月 11月 12月
2011年
01月 02月 03月
04月 05月 06月
07月 08月 09月
10月 11月 12月
2010年
01月 02月 03月
04月 05月 06月
07月 08月 09月
10月 11月 12月
2009年
01月 02月 03月
04月 05月 06月
07月 08月 09月
10月 11月 12月
2008年
01月 02月 03月
04月 05月 06月
07月 08月 09月
10月 11月 12月
2007年
02月 03月
04月 05月 06月
07月 08月 09月
10月 11月 12月



CRON仕様トラップ 2008年6月8日(日)19時25分
分類:マメ知識 [この記事のURL]

アクセス解析を数日前より、さくらサーバに移動させた。
今使ってるアクセス解析のログは 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 にしているため。

関連〆 年変わり同時更新に関して思ったこと


nik5.144