このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

サーバー監視用ミニスクリプト

発言者:田中求之
( Date Tuesday, July 02, 1996 19:17:25 )


サーバーへのアクセスの具合を監視するのに私が使っているスクリプトを紹介しておき
ます。以下のような ssreport ハンドラーを作っておいて、それを1時間ごとに
呼び出して、Hit 数の推移をページに記録させています。ハンドラーの呼び出し用の
idle ハンドラーは省略してあります。正確に毎時0分に呼び出すためには、ちょっと
した工夫が必要なのですが、その辺は皆さんが各自で工夫してください。

--- Sample Script of Access Report -----
property crlf : (ASCII character 13) & (ASCII character 10)
property lastAccess : 20000 --- 大きな数で初期化しておく
property accessReport : "MacHD:WebSTAR:access.html" -- ページファイルのパス

on ssreport()
  tell application "WebSTAR"
    set myT to Status Report
  end tell
  
  set cAccess to (word 2 of myT) as integer
  
  set myDate to (DateList with asStr)
  set myRepo to (item 2 of myDate) & "/" & (item 3 of myDate) & " " & (item 4 of myDate) & ツ
    ":" & (item 5 of myDate) & "  "
  
  if cAccess < lastAccess then
    --- WebSTAR が再起動された場合などにデータをクリアし、ページを作りなおす
    set deltaAccess to cAccess as string
    set myHeader to "<TITLE>Access Report</TITLE>" & return ツ
      & "<BODY BGCOLOR=\"#DDDDFF\">" & return & return ツ
      & "<h1>Tanaka's Server Access Report</h1>" & return ツ
      & "<HR><P>" & return ツ
      & "<pre>" & return ツ
      & "              * = 20 hits" & return & return
    writeToFile (myHeader & myRepo & " -- Start --" & return) to file accessReport
    
  else
    set dx to (cAccess - lastAccess)
    set deltaAccess to dx as string
    
    set dy to dx div 20
    set myC to 1
    repeat dy times
      if (myC mod 5) = 0 then
        set myRepo to myRepo & "@"
      else
        set myRepo to myRepo & "*"
      end if
      set myC to myC + 1
    end repeat
    
    appendToFile (myRepo & return) to file accessReport
    
  end if
  set lastAccess to cAccess
end ssreport

---- End of Script ----


なお、以下のページが、実際に、現在私の CGI が記録し続けているページです。

参考になれば幸いです。



→  Access Report