• ベストアンサー

AWSTATSのログ表示について

Windows2000上でIISのログをAWSTATS6.2で表示しています。 手動で、アップデートをかけているのですが、土日の分を月曜日にアップデートをかけると表示が土日のアクセス数が0になってしまいます。 confファイルは LogFile = "C:\log\ex%YY%MM%DD.log" と設定されており、土日以外は正常に動いているようです。 また、月曜日に土曜日のex041211.logと指定しても既に登録されているレコードと表示されます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

#1です。 今思いついたんですが、ひょっとして土日の分を月曜日にAWStatsに食わせる前に、月曜日のログをAWStatsに食わせていませんか? AWStatsは最後に処理したログの日付を覚えていて、それ以上古いログについては処理済と判断するはずです。 つまり、月曜日のログを処理した後では、日曜日以前のログを処理することはできないはずです。 もし最新のログを処理してから過去のログを処理しようとして書き込まれているようなエラーが出ているのであれば、ログを時系列順に処理してやればちゃんと出力されると思いますが....

参考URL:
http://www.bflets.dyndns.org/Tools/AWStatsDocs_JP/awstats_faq_jp.html#OLDLOG
slash4004
質問者

お礼

ありがとうございます。 3日分まとめて食わせてました。そのようにしないと今日の日付のデータがないので、処理がキャンセルされてしまうのでまとめてやっていたのがよくなかったようですね。 ありがとうございます。試してみます。

その他の回答 (2)

回答No.3

#1です。 ついでに書きますが、必ずしも処理当日のデータがないと処理できないということはありません。 例えば週が空けて出社してきたときに、 1. awstats.confのLogfileとして土曜日のログ(=未処理のログの中で最も古いもの)を指定してAWStatsを実行 2. 同様に日曜日のログを指定してAWStatsを実行 3. 同様に月曜日のログを指定してAWStatsを実行 とやれば処理できるはずです。 awstats.confを書き換えるのが面倒くさかったら、コマンドラインの引数でLogfile=を指定してやれば、awstats.confの設定をオーバーライドできます。 今回の例で問題になったのは、あくまで"それまでにAWStatsが処理したログよりも古いログを処理するように命令された"からであり、決して"処理日のデータを含んでいないログを処理するように命令された"からではありません。 私は、AWStatsのバージョンを上げるときに、一気に2年分くらいのログを処理させたこともありますよ(^^; #丸1日くらいかかりましたが....

slash4004
質問者

お礼

ありがとうございます。 勘違いをしていたようですね。 exYYMMDD.log という形式のログは特定のフォルダーにおいておくと この形式のファイル名をすべてみてくれているのかと思っていました。

回答No.1

こんにちわ。 ちょっと本家サイトを見てみましたが、特にそのような情報は上がっていないようですね。 消極的な方法かもしれませんが、IISのログを一つにまとめて(IISのログプロパティで"ファイルサイズを限定しない"を選択)、それをAWStatsに処理させてはいかがでしょうか? ファイルサイズが気になるのであれば、上限を設定できるのを選択すればいいでしょう(IISのログプロパティで"ファイルサイズが次のバイト数に達したとき"を選択)。

slash4004
質問者

お礼

そうですね。logの取り方を変えられるのが一番切り分けがしやすいのですが、1日のログが30MB程度あるので手動で更新している関係もあって変えにくいのです。 日付を指定して既に登録されているレコードとでるので月曜日に土、日の分がまとめられているということなのか、どうなのかという点が気になります。おそらく表示の問題でそうなるような気がするのですが。

関連するQ&A

  • AWStatsのセットアップについて(2)

    インターリンク社の固定IP(myIP)を用いWin2Kサーバー上にAWStatsのセットアップを試みました。セットアップは主に「AWStats 6.7...」解説を参考にしました。 Win2Kサーバーの設定 (1)IISのログファイル保管ディレクトリーを以下のように指定。E:\Inetpub\apache group\apache\logs\access_log (2)仮想ディレクトリーの設定 エイリアス  : public_html ディレクトリー: e:\inetpub\apache group\apache\seanews\public_html アクセス許可: すべて許可 (3)CGIを保管するディレクトリの作成 エイリアス  : cgi-bin ディレクトリー: e:\inetpub\apache group\apache\cgi-bin アクセス許可: すべて許可 AWStatsのセットアップ awstats-6.9.exeを展開し、指示に従って以下のように設定。 Apache web server path    e:\inetpub\apache group\apache web server configfile path   e:\inetpub\apache group\apache\conf\httpd.conf AWStats config/profile file yes/no yes web site name : seanews-sg.com 以下の内容のメッセージが表示されました。 注1:以下のコンフィグファイルを形成した。 e\Program Files\AWStas\wwwroot\cgi-bin\awstas.seanews-sg.com.conf 注2:windowsユーザーはschedulertaskにupdate processを手動で追加すること。 注3:E:\Program Files\AWStats\wwwroot\cgi-bin\awstats.seanews-sg.com.confを手動で設定すること。 注4:上記設定後は以下のコマンドを実行することにより、統計を更新できる。 perl awstats.pl -ipdate -config=seanews-sg.com 統計内容は以下のURLで確認できる。 http://localhost/awstats/awstats.pl?config=seanews-sg.com 設定 (1)E:\Inetpub\apache group\apache\conf\httpd.confに以下の一行を追加 CustomLog /var/log/httpd/access_log combined (2)E:\Program Files\AWStats\awstats\wwwroot\cgi-bin内の全てのファイル、ディレクトリを E;\inetpub\apache group\apache\cgi-binディレクトリにコピー (3)E:\Program Files\AWStats\awstats\wwwroot\iconに格納されたアイコンのファイル/ディレクトリを E:\Inetpub\apache group\apache\iconにコピー E:\Inetpub\apache group\apache\cgi-bin\awstats.seanews-sg.com.confの設定変更(抜粋) (1)LogFile="E:\Inetpub\apache group\apache\logs\access_log" (4)SiteDomain="seanews-sg.com" (5)HostAliases="seanews-sg.com www.seanews-sg.com 127.0.0.1 localhost" (これは自動的に生成されたもので、変更していません) (7)DirData="E:\Program Files\AWStats\awstats_db" (8)DirCgi="E:\inetpub\apache group\apache\cgi-bin" (9)DirIcons="E:\Inetpub\apache group\apache\icon" (14)Lang="en" ここで上記の解説に従い、ブラウザで閲覧できるか試したところ、以下のエラーメッセージが表示されました。 http://127.0.0.1/awstas.html http://61.206.126.235/awstas.html http://localhost/awstats/awstats.pl?config=seanews-sg.com ページが見つかりません 。検索中のページは、削除されたか、名前が変更されたか、または一時的に利用できない可能性があります。 http://www.seanews-sg.com/awstas.html ページを表示できません検索中のページは現在、利用できません。Web サイトに技術的な問題が発生しているか、ブラウザの設定を調整する必要があります。 以下はE:\Inetpub\apache group\apache\logs\W3SVC1\ex090215.logの中身です。 #Software: Microsoft Internet Information Services 5.0 #Version: 1.0 #Date: 2009-02-15 15:22:25 #Fields: date time c-ip cs-username s-sitename s-computername s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status sc-win32-status sc-bytes cs-bytes time-taken cs-version cs-host cs(User-Agent) cs(Cookie) cs(Referer) 2009-02-15 15:22:25 127.0.0.1 - W3SVC1 C 127.0.0.1 80 GET /awstats/awstats.pl config=seanews-sg.com 404 3 4213 313 160 HTTP/1.1 localhost Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0) - -以下省略

  • AWStatsのセットアップについて

    以下のURLの『AWStats 6.7』の解説に従って、Win2KサーバーにAWStats の導入を試みています。 http://cyberam.dip.jp/linux_server/log/awstats60_main.html 先ずWin2Kサーバーの『仮想ディレクトリー作成ウィザード』により以下のように設定しました。 エイリアス   public_html ディレクトリー e:\*** アクセス許可  すべて許可 次にActivePerl (Win版)『ActivePerl-5.10.0.1004-MSWin32-x86-287188.msi』をダウンロード、インストールしました。 さらにawstats-6.9.exeをダウンロードし、以下のように設定しました。 Apache web server path      e:\apache group\apache web server configfile path      e:\apache group\apache\conf\httpd.conf AWStats config/profile file yes/no yes web site name             e:\**** perlの場所とCGIディレクトリのパスは次の通りです。 e:\perl\bin\perl.exe e:\Program Files\AWStats\wwwroot\cgi-bin WWWサーバのルートディレクトリはe:****としました。 質問1: Apacheのアクセスログのパスが確認できません。解説では/usr/local/apache/logs/access_logとなっていますが、検索しても『access_log』と言うファイルも見つかりませんでした。 質問2: Apacheのログフォーマットがcombinedであるか否か確認できません。 解説にしたがって、 vi e:\apache group\apache\conf\httpd.conf とタイプしたところ「'vi'は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」と言うエラーメッセージが表示されました。

  • バッチファイル 2つのログに出力 短縮版

    お世話になっております。 WindowsXP環境にて下記のバッチファイルがあります。 コード-------------------------------------------------------------------------------- rem === 変数設定 =============================================================== rem --- 時間変数 --- set yyyy=%date:~-10,2% set yy=%date:~-8,2% set mm=%date:~-5,2% set dd=%date:~-2,2% set HH=%TIME:~0,2% set MM2=%TIME:~3,2% set SS=%TIME:~6,2% rem --- フォルダ変数 --- set LOG_DIR1=D:\test rem --- ファイル変数 --- set LOG_FILE1=LOG.txt set LOG_FILE2=LOG_ALL.txt set LOG_FILENAME1=%LOG_DIR1%\%LOG_FILE1% set LOG_FILENAME2=%LOG_DIR1%\%LOG_FILE2% set BAT_FILE1=test.bat rem コマンド拡張機能有効化 setlocal ENABLEEXTENSIONS rem === 変数設定 =============================================================== REM <開始処理>=============== call :TIME echo %BAT_FILE1% 処理日 = %yyyy%%yy%/%mm%/%dd% 処理開始時間= %HH%:%MM2%:%SS%>> %LOG_FILENAME1% echo. >> %LOG_FILENAME1% echo %BAT_FILE1% 処理日 = %yyyy%%yy%/%mm%/%dd% 処理開始時間= %HH%:%MM2%:%SS%>> %LOG_FILENAME2% echo. >> %LOG_FILENAME2% rem 現在の日付/時間を取得 :TIME set yyyy=%date:~-10,2% set yy=%date:~-8,2% set mm=%date:~-5,2% set dd=%date:~-2,2% set HH=%TIME:~0,2% set MM2=%TIME:~3,2% set SS=%TIME:~6,2% exit /b コード-------------------------------------------------------------------------------- 上記プログラムは日付を2つのログに出力していますが、 echo %BAT_FILE1% 処理日 = %yyyy%%yy%/%mm%/%dd% 処理開始時間= %HH%:%MM2%:%SS%>> %LOG_FILENAME1% echo. >> %LOG_FILENAME1% echo %BAT_FILE1% 処理日 = %yyyy%%yy%/%mm%/%dd% 処理開始時間= %HH%:%MM2%:%SS%>> %LOG_FILENAME2% echo. >> %LOG_FILENAME2% と二重になっている無駄なコードとなり、見栄えが良くないです。 これを1つのコードで2つのログファイルに出力可能な短縮プログラムは可能でしょうか? ご存知の方がいましたら、ご教授願いますでしょうか? 何卒宜しくお願い致します。

  • EXCELでの日付の表示で、

    yy/mm/ddのX日後が、土日祝日だった場合、 (1)その前日を表示する (2)その後日を表示する には、どうしたらいいか教えてください。 (x日後が平日だった場合は、その日を表示) EXCEL2000を使っています。 よろしくお願いします。

  • バッチファイル 時間変数 短縮化

    バッチファイル 時間変数 短縮化 お世話になっております。 WindowsXP環境にて下記のバッチファイルがあります。 コード-------------------------------------------------------------------------------- set BAT_FILE=TIME.bat set LOG_DIR=D:\test set LOG_FILE=LOG.txt set LOG_FILENAME=%LOG_DIR%\%LOG_FILE% set yyyy=%date:~-10,2% set yy=%date:~-8,2% set mm=%date:~-5,2% set dd=%date:~-2,2% set HH=%TIME:~0,2% set MM2=%TIME:~3,2% set SS=%TIME:~6,2% echo %BAT_FILE% 処理日 = %yyyy%%yy%/%mm%/%dd% 第一処理開始時間= %HH%:%MM2%:%SS%>> %LOG_FILENAME% echo. >> %LOG_FILENAME% 処理A(プログラムは省略) set yyyy=%date:~-10,2% set yy=%date:~-8,2% set mm=%date:~-5,2% set dd=%date:~-2,2% set HH=%TIME:~0,2% set MM2=%TIME:~3,2% set SS=%TIME:~6,2% echo %BAT_FILE% 処理日 = %yyyy%%yy%/%mm%/%dd% 第一処理終了時間= %HH%:%MM2%:%SS%>> %LOG_FILENAME% echo. >> %LOG_FILENAME% set yyyy=%date:~-10,2% set yy=%date:~-8,2% set mm=%date:~-5,2% set dd=%date:~-2,2% set HH=%TIME:~0,2% set MM2=%TIME:~3,2% set SS=%TIME:~6,2% echo %BAT_FILE% 処理日 = %yyyy%%yy%/%mm%/%dd% 第二処理開始時間= %HH%:%MM2%:%SS%>> %LOG_FILENAME% echo. >> %LOG_FILENAME% 処理B(プログラムは省略) set yyyy=%date:~-10,2% set yy=%date:~-8,2% set mm=%date:~-5,2% set dd=%date:~-2,2% set HH=%TIME:~0,2% set MM2=%TIME:~3,2% set SS=%TIME:~6,2% echo %BAT_FILE% 処理日 = %yyyy%%yy%/%mm%/%dd% 第二処理終了時間= %HH%:%MM2%:%SS%>> %LOG_FILENAME% echo. >> %LOG_FILENAME% コード-------------------------------------------------------------------------------- 上記プログラム内の処理A及び、処理Bは比較的長い処理である為、その前後の処理時間帯を上記のように時間変数で取ってログに出力されています。 しかし、上記のように最新の処理時間帯をわざわざ何行もある各時間変数を宣言して取得するのはプログラム的に長くなってしまい、かつ醜いです。 上記方法以外に時間変数のスッキリとした取得方法は無いのでしょうか? ご存知の方がいれば、ご教授願いますでしょうか? 何卒宜しくお願い致します。

  • ダイナミックテキストへの日付の表示がおかしい

    こんにちは、私、Flashチョー初心者です。 環境は、flash8 winXPです。 月の表示だけが、0になってしまうんですが、、、 ダイナミックテキストに時間を割り当てようとして、 以下のように、スクリプトを記述しました。 0月5日9:35 などと表示されてしまいます。 どうしてなのでしょう?  正しく1月と表示したいのですが、どなたか、教えていただけませんか? #####スクリプト######## mydate = new Date(); yy = mydate.getFullYear(); mm = mydate.getMonth(); dd = mydate.getDate(); hh = mydate.getHours(); ii = mydate.getMinutes(); ss = mydate.getSeconds(); cal = (mm+"月"+dd+"日"+hh+":"+ii);

    • ベストアンサー
    • Flash
  • 賞味期限:ひまわり油

    ひまわり油のビンに賞味期限らしきものが印字してあります。 PD:03/12/2004 SN:64 ED:03/12/2006 PN:2-64 ED は食べることのできる期限のことでしょうか? 本年の・・・3月12日ですか? それとも12月3日ですか? /で区切ると、MM/DD/YY or DD/MM/YY どっち?

  • ファイル名の一部に年月日が入っているファイルを、指定日以前のもののみ一

    ファイル名の一部に年月日が入っているファイルを、指定日以前のもののみ一括削除する方法を教えてください。 上記の目的を果たすためにバッチファイルを作成しようと思っているのですが、当方プログラミング全般に関して全くの素人でして、Web検索で見つけたものを切り貼りして無理やり作ったところ、思うような結果になりませんでした。 (BCPフォルダ直下に当該ファイルを置いた場合削除できたが、サブフォルダのファイルは削除できない) どうもあと一歩で完成しそうな気がするので、できればこのバッチファイルを元に修正していただけると嬉しいのですが、VBScript等で作成した方が簡単なのであればバッチファイル以外の方法でも構いません。 宜しくお願い致します。 <予め決められているルール(変更は不可)> (1)2010年9月2日21時21分55秒14に作成されたファイルは、「201009」フォルダ配下に「ABC_DEF_GHI_2010090221215514.txt」と「ABC_DEF_GHI_2010090221215514.log」という名前がつけられる。 (2)1日1回バッチファイルを起動し、指定日以前に作成したファイルを全て削除する。 <作成したバッチファイル(DEL.bat)> @echo off cd ..\BCP REM --------------- REM 日付のn日前を求める REM 引数1・・・n(数値) REM 引数1がないときは1(前日) REM 引数2・・・YYYY/MM/DD 形式 REM 引数2がないときは本日とする。 REM --------------- if "%1"=="" ( set n=5 ) else ( set n=%1 ) if "%2"=="" ( for /F "tokens=1" %%a in ('date /t') do set orgdate=%%a ) else ( set orgdate=%2 ) :年月日の分割 set yy=%orgdate:~0,4% set mm=%orgdate:~5,2% set dd=%orgdate:~8,2% set count=0 :Repeat :月日の数値化(8進数対策) set /a mm=1%mm%-100 set /a dd=1%dd%-100 set /a dd=%dd%-1 if %dd% NEQ 0 goto end :月跨り処理 set /a mm=%mm%-1 if %mm% EQU 0 set mm=12&&set /a yy=%yy%-1 set /a dd=%dd%+31 if "%mm%"=="2" set /a dd=%dd%-3 if "%mm%"=="4" set /a dd=%dd%-1 if "%mm%"=="6" set /a dd=%dd%-1 if "%mm%"=="9" set /a dd=%dd%-1 if "%mm%"=="11" set /a dd=%dd%-1 :閏年処理 :4で割り切れるか? set /a u=%yy% %% 4 if not %u%==0 goto end :100で割り切れて、400で割り切れないか? set /a u=%yy% %% 400 set /a v=%yy% %% 100 if %v%==0 if not %u%==0 goto end :2月か? if %mm% EQU 2 set /a dd=%dd%+1 :END set mm=0%mm% set mm=%mm:~-2% set dd=0%dd% set dd=%dd:~-2% set /a count=%count%+1 set DT=ABC_DEF_GHI_%yy%%mm%%dd% IF %count% NEQ %n% goto Repeat for %%F in (*.txt *.log) do if %%F LSS %DT% del /s %%F :EXIT <フォルダ構造> 添付画像をご参照下さい。

  • 好きな場所に表示したい。

    以下のソースは購入した本のサンプルです。 これによると、日付の表示が一番上に出ます。好きな場所に表示するのは、どうしたらよいでしょか。初心者なので、よろしくお願いします。 <html> <head> <title>JavaScript sample</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <script language="JavaScript"> <!-- //WEEK配列を用意して、月~土の文字を記憶させます。 WEEK=new Array(7); WEEK[0]="日"; WEEK[1]="月"; WEEK[2]="火"; WEEK[3]="水"; WEEK[4]="木"; WEEK[5]="金"; WEEK[6]="土"; today=new Date(); //現在の時間を持つDateオブジェクトを作成します YY=today.getFullYear(); //4桁の西暦をYYに代入 MM=today.getMonth(); //月をMMに代入 MM = MM + 1; //getMonth()は0~11なので、1を足します if(MM < 10){ //MMが10未満の時 MM = '0' + MM; //先頭に0をつけて2桁にします。 } DD=today.getDate(); //日付をDDに代入 if(DD < 10){ //DDが10未満の時 DD = '0' + DD; //先頭に0をつけて2桁にします。 } WDay=today.getDay(); //WDayに曜日を代入。WDayの値は //0~6となり、0が日曜、6が土曜となります。 JWDay = WEEK[WDay]; //WEEKのWDay番目の値が日本語の曜日となります。 //document.writeを使って、日付を表示します。 document.write("<div style='font-size:12px; color:#333333'>今日は"+YY+"年"+MM+"月"+DD+"日("+JWDay+")"+"です。</div>"); //--> </script> </head> <body bgcolor="#FFFFFF" text="#000000"> </body> </html>

  • 他のシステムからExcelに日付を貼り付ける

    こんばんは。 過去の質問を見ていたのですが、同じような質問を見つけられなかったのでどなたか知ってたら教えてください。 タイトルにあるように他のシステム(Aとします)からExcelに日付をコピー・ペーストしたいのですが、AのフォーマットがDD/MM/YYになっています。 PCの日付の設定自体をRegional OptionsでDD/MM/YYに変えてしまえば話は早いのですが、それをMM/DD/YYにしたままExcelにペーストすると日にちが12日より大きいものはDate型として認識しません。 例えば10/12/03はDateとして認識されますが2003年10月12日として認識されます。(本当は2003年12月10日なんですが。)又、15/12/03(2003年12月15日)はDateではなくGeneralとして認識されます。右クリックformat Cellで日付型に変換しても、CustomizeでDD/MM/YYとしてもやはり日付として認識しません。どうやったらExcelに日付として表示させることができますか?