◆ ログファイル変換
| スクリプト名 | ログファイル変換(convert.cgi) |
| バージョン | Ver 1.00 |
| 作成日/更新日 | 2004.02.22 / --------- |
| サンプル | サンプルなし |
| 利用制限 |
フリー 利用に際しては利用規程をご覧下さい
|
| ご質問・ご要望 |
サポート掲示板へ
|
| ダウンロード |
conv100.lzh
|
※ ダウンロードの反応が多少遅いのでクリック後暫くお待ちください。
- 現在ご使用のログファイルを別のスクリプト用に変換する為のスクリプトです。
- 設定ファイルを入出力のログ内容に合わせて作成することで自由に変換可能です。
- 変換に際しては、文字列除去・文字列抽出・書式変換等が可能です。
- 文字コード・改行コードの変換も行えます。
Top へ戻る
◆ プログラム設定値の変更
- エディタなどで 「convert.cgi」のファイルを開いて、下記の内容を適宜修正して下さい。
文字コードはEUCです。通常のメモ帳などでは文字化けして表示されます。
- #!/usr/local/bin/perl (1行目)
- 設置するサーバの環境に合わせて設定して下さい。ほとんどの場合このままで使用できると思います。
- $_admin_pwd = 'pass';
- 管理者のパスワードを設定して下さい。必ず設定変更して下さい。
- $_conf_dir = '.';
- 変換設定ファイル格納ディレクトリを設定します。
- $_out_dir = '.';
- 変換後出力ファイル格納ディレクトリを設定します。
- $_out_mode = 0;
- ファイル出力の制御設定で、0を設定の場合、空ファイル存在時のみ出力、
1を設定の場合、データ有無に関係なくファイル存在時に出力、
2を設定の場合、出力ファイルの存在有無に関係なく作成もしくは更新して出力します。上書き防止の為には 0設定が無難です。
Top へ戻る
◆ サーバへのアップロード
以下のようにCGI実行ディレクトリ直下に conv ディレクトリごと転送して下さい。
転送後に各ディレクトリ・ファイルのパーミッションを下記の数値に設定して下さい。
なお、SuExec環境下での設置の際は、先頭以外の数値をゼロにして設定下さい。「例:705→700」
| ファイル名 |
パーミッション |
備考 |
conv |
705 |
CGI格納ディレクトリ |
 
convert.cgi |
705 |
ログファイル変換スクリプト |
 
jcode.pl |
604 |
文字コードライブラリ |
 
conv_smp.ini |
604 |
サンプル 変換設定ファイル |
 
conv_euc.ini |
604 |
サンプル EUC変換設定ファイル |
 
conv_sjis.ini |
604 |
サンプル SJIS変換設定ファイル |
 
smp_in.log |
604 |
サンプル変換元ログファイル |

out |
705 |
変換後ログファイル格納ディレクトリ |

 
out_smp.log |
606 |
サンプル 出力ログファイル(空ファイル) |

 
out_euc.log |
606 |
サンプル EUC出力ログファイル(空ファイル) |

 
out_sjis.log |
606 |
サンプル SJIS出力ログファイル(空ファイル) |
Top へ戻る
◆ 変換設定ファイルの設定内容
下記の内容は、サンプルで添付しています変換設定ファイルの中身です。
変換元および変換先のデータ内容等が把握できていないと設定はできませんが、
必要になりそうな関数は用意してありますので、とりあえず応用は利くかと思います。
なお、設定値により変換先頭#の行はコメントです。
|
#
# ログ変換スクリプト用設定ファイル (Ver1.0用)
# サンプル
#
#-----------------------------------------------------------
# 入力設定
#-----------------------------------------------------------
# 変換元ログファイル
# 変換元となるログファイルを指定します。(ディレクトリ付加可)
#IN_FILE = ./in/in_smp.log
IN_FILE = in_smp.log
# 変換元項目セパレータ
# 変換元の項目(データ)間の区切り文字を指定します。
IN_FLD_SEP = <>
# 変換元ヘッダ有無(0:無,1:有)
# 変換元のログファイルにヘッダが存在する場合は 1、
# 存在しない場合は 0もしくは未設定にします。
IN_HEAD = 1
#-----------------------------------------------------------
# 出力基本設定
#-----------------------------------------------------------
# 変換後データ出力ファイル
# 変換元の出力先ログファイルを指定します。(ファイルIDのみ)
# 変換元の出力先ディレクトリについては、スクリプト内の
# $_out_dir で指定して下さい。
OT_FILE = out_smp.log
# 変換後項目セパレータ
# 変換後の項目(データ)間の区切り文字を指定します。
OT_FLD_SEP = <>
# 変換後行間セパレータ(\n/\r/\r\nのいずれかを設定)
# 変換後のレコード行とレコード行の区切り(改行)文字を指定します。
# Unix用のLFの場合は \n、Windows用のCR-LFの場合は \r\n、
# Mac用のCRの場合は \rを指定します。これ以外はそのまま付加されます。
OT_REC_SEP = \r\n
# 変換後ヘッダ有無(0:無,1:有)
# 変換後のログファイルにヘッダ行を出力する場合は 1、
# 出力しない場合は 0もしくは未設定にします。
OT_HEAD = 1
# 変換後データレコード項目数
# 変換後のデータレコードの項目数を設定します。最大設定数は100です。
# この項目数まで強制的に出力します。データ内容未設定の場合は空データで出力。
OT_COLS = 14
# 変換後文字コード(euc/sjisを設定)
# 変換後の文字コードをWindows,Mac用のShift-JISで出力する場合は sjis、
# UNIX用のEUCで出力する場合 euc もしくは未設定にします。
OT_CHAR = euc
#-----------------------------------------------------------
# 出力データ設定
#-----------------------------------------------------------
# 変換設定
# 出力データ設定における設定方法
# $n : 入力データ要素(先頭は0)
# $RECNO : データ部…連番(先頭は1)
# ヘッダ部…レコード数
# SUBSTR() : 部分文字列抽出
# 例 : SUBSTR($1,2,4)
# … 入力データ要素2番目の3文字目から4文字抽出
# SPRINTF() : 書式変換(書式文字列はprintfと同様)
# 例 : SPRINTF(%05d,$1)
# … 入力データ要素2番目の数値を頭ゼロ埋めの5桁で出力
# REPLACE() : 文字列置換
# 例 : REPLACE($1,http://,)
# … 入力データ要素2番目からhttp://を除去して出力
# FMTDATE() : 日時書式変換
# 例 : FMTDATE(%Y/%M/%D,$1)
# … 入力データ要素2番目をYYYY/MM/DDの日付書式で出力
# SPACE() : スペース出力
# 例 : SPACE(5)
# … 5桁の半角スペースを出力
#-----------------------------------------------------------
#
# 入力,出力ともすべて項目番号は0番からです。
#
##- ヘッダ部 -##
# 下記の設定で、
# 「データ行数 + 項目間区切り(OT_COL_SEP) + 入力の第0番目ヘッダデータ」を出力
head0 = $RECNO
head1 = $0
##- データ部 -##
# 以下の各データ出力値を項目間区切り(OT_COL_SEP)で連結し出力
# データ第番0目 … 入力の第0番目のデータを頭ゼロ埋め4桁の数値
# + データレコード番号を頭ゼロ埋め2桁の数値
data0 = SPRINTF(%04d,$0)SPRINTF(%02d,$RECNO)
# データ第1番目 … 空データ
data1 =
# データ第2番目 … 入力の第1番目のデータ
data2 = $1
# データ第3番目 … 入力の第2番目のデータ
data3 = $2
# データ第4番目 … 入力の第3番目のデータからhttp://を除去
data4 = REPLACE($3,http://,)
# データ第5番目 … 入力の第4番目のデータ
data5 = $4
# データ第6番目 … 入力の第6番目のデータ
data6 = $6
# データ第7番目 … 入力の第5番目のTime形式データをYYYY年MM月DD日 hh:mm:ssの書式に変換
data7 = FMTDATE(%Y年%M月%D日 %T,$5)
# データ第8番目 … 入力の第7番目のデータの3文字目から4桁を抽出
data8 = SUBSTR($7,2,4)
# データ第9番目 … 未設定の為、空データ
# データ第10番目 … 半角スペース4桁
data10 = SPACE(4)
# データ第11番目 〜 第13番目 … 項目数14を指定している為、空データ
|
Top へ戻る
◆ 変換方法
ブラウザのアドレス入力ボックスに直接ログファイル変換スクリプト(convert.cgi)のパスを
入力して実行して下さい。
表示された画面で、変換設定ファイルを選択し、管理者パスワード($_admin_pwd設定値)を入力し、
変換ボタンをクリックして下さい。これだけで変換は完了です。
|
指定アドレス例 http://www.xxxx.com/cgi-bin/conv/convert.cgi
|
Top へ戻る
◆ 更新履歴