今天早上為了 H2 執行五六個小時後會出現 out of memory 的問題在頭痛...
上到 Google Group 查了一下,有人建議先把 JVM 的 heap 開大一點試試看....
於是.......問題來了,要怎麼開大??
在 Linux 裡面可以直接透過 Alias 的方式解決.......
那 Windows 呢? 答案就是設定一個名稱為 "_JAVA_OPTIONS" 的環境變數
值的部分就設定為 "-Xms512m -Xmx1024m" 應該是很夠用了....
再來繼續長時間測試 H2 看看.....
2009年4月16日 星期四
[Windows] 使用 .reg 檔案新增 & 刪除登錄檔機碼
今天剛好遇到這個需求(使用 .reg 檔案新增 & 刪除登錄檔機碼),所以在網路上找到了蠻不錯的參考資料
如何使用登錄檔(.reg)進行新增、修改或刪除登錄機碼和值
利用登錄檔來刪除機碼 - 教學文章 - 卡拉娛樂網 論壇|娛樂|影音|分享|下載
新增比較容易,而刪除的話可以開啟登錄檔編輯程式(開始 -> 執行 -> regedit),將要刪除的機碼匯出,並進行編輯,在每個機碼前面加上「-」即可。
如何使用登錄檔(.reg)進行新增、修改或刪除登錄機碼和值
利用登錄檔來刪除機碼 - 教學文章 - 卡拉娛樂網 論壇|娛樂|影音|分享|下載
新增比較容易,而刪除的話可以開啟登錄檔編輯程式(開始 -> 執行 -> regedit),將要刪除的機碼匯出,並進行編輯,在每個機碼前面加上「-」即可。
2008年11月12日 星期三
.NET 如何解決 DLL Hell
以下節錄自「別再掉進DLL地獄的陷阱裡(DLL Hell)~.NET解決之道」
其他參考資料
- The .NET Framework NET Assembly 自我描述與版本管理功能讓 zero-impact 的部署安裝成為可能,同時也終結了DLL Hell。
- Application-Private Assemblies (or 被隔離的 assembly) 只能被一個應用程式所使用 - 它不會被其他的應用程式所影響。 隔離的 assembly 讓程式開發者對應用程式有著絕對的控制權,開發好的Application-Private Assemblies只要部署在和應用程式同一目錄即可。
- 透過Side by side execution的技術,應用程式只要安裝成功之後,就不用擔心DLL更新版本,或規格的改變, 它允許 一個 assembly 的多個版本在一個機器上同時被安裝並執行, 而且每一個應用程式都可以要求和不同的 Assembly 版本繫結。
- The .NET Framework 紀錄應用程式版本資訊,並在執行應用程式時使用此資訊載入應用程式所需依賴的正確版本的 Assemblies。
其他參考資料
2007年12月27日 星期四
設定 GirdGain Wndows Service
環境說明
這個部分要說明如何將 GridGain 設定為 Windows Service,以下說明一下實驗的環境:
GridGain 版本:1.6.1
安裝路徑(%GRIDGAIN_HOME%):C:\gridgain-1.6.1
這個部分有很重要的地方一定要先作,就是在「環境變數 -> 系統變數」中設定 GRIDGAIN_HOME!!
由於安裝 GRIDGAIN 時,會在「環境變數 -> 使用者變數」中設定 GRIDGAIN_HOME,但僅有這個是沒辦法將 GridGain 設定為 Windows service 的,因此在進行下面設定時要將 %GRIDGAIN_HOME% 系統變數補上!
下載 Java Service Wrapper
首先要下載 Java Service Wrapper,可以到 http://wrapper.tanukisoftware.org 下載;由於是要用在 Windows 上,因此要選擇「wrapper-windows-x86-32-x.x.x.rar」。
【註】目前似乎沒有 Windows X86 64 bit 的版本可供下載........
下載完之後,將檔案解開,接著我們以 %WRAPPER_HOME% 作為檔案解開後存放的目錄(假設為 D:\wrapper-windows-x86-32),要進行以下動作:
編輯設定檔
接著要編輯 Java Service Wrapper 設定檔,檔名為「wrapper.conf」(其實可以自己命名)
以下為設定檔內容:(要根據實際的情況進行修改喔!!)
其中在 classpath 的部分,由於版本不同的關係,在官方網站上的 library 版本與實際安裝有出入,因此我有進行修改!
安裝、啟動、停止、移除 GridGain Service
以上步驟都完成後,就可以安裝 GridGain Service 囉! 選擇「開始 -> 執行」,輸入以下指令執行以下操作:
1、安裝 service
安裝完 GridGain service 之後,就可以在服務管理的頁面上進行管理囉!
這個部分要說明如何將 GridGain 設定為 Windows Service,以下說明一下實驗的環境:
GridGain 版本:1.6.1
安裝路徑(%GRIDGAIN_HOME%):C:\gridgain-1.6.1
這個部分有很重要的地方一定要先作,就是在「環境變數 -> 系統變數」中設定 GRIDGAIN_HOME!!
由於安裝 GRIDGAIN 時,會在「環境變數 -> 使用者變數」中設定 GRIDGAIN_HOME,但僅有這個是沒辦法將 GridGain 設定為 Windows service 的,因此在進行下面設定時要將 %GRIDGAIN_HOME% 系統變數補上!
下載 Java Service Wrapper
首先要下載 Java Service Wrapper,可以到 http://wrapper.tanukisoftware.org 下載;由於是要用在 Windows 上,因此要選擇「wrapper-windows-x86-32-x.x.x.rar」。
【註】目前似乎沒有 Windows X86 64 bit 的版本可供下載........
下載完之後,將檔案解開,接著我們以 %WRAPPER_HOME% 作為檔案解開後存放的目錄(假設為 D:\wrapper-windows-x86-32),要進行以下動作:
- 複製檔案 %WRAPPER_HOME%\bin\wrapper.exe【D:\wrapper-windows-x86-32\bin\wrapper.exe】 到 %GRIDGAIN_HOME%\bin【C:\gridgain-1.6.1\bin】 目錄中。
- 複製目錄 %WRAPPER_HOME%\lib【D:\wrapper-windows-x86-32\lib】 中的檔案 wrapper.jar 與 wrapper.dll 到 %GRIDGAIN_HOME%\lib【C:\gridgain-1.6.1\lib】 目錄中
編輯設定檔
接著要編輯 Java Service Wrapper 設定檔,檔名為「wrapper.conf」(其實可以自己命名)
以下為設定檔內容:(要根據實際的情況進行修改喔!!)
# GridGain Daemon/Service Properties
# Java Application
wrapper.java.command=java
# Java Main class. See the Integration section
# of the documentation for details.
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
wrapper.java.classpath.1=C:\gridgain-1.6.1\libs\wrapper.jar
wrapper.java.classpath.2=C:\gridgain-1.6.1\libs\activation-1.0.2.jar
wrapper.java.classpath.3=C:\gridgain-1.6.1\libs\ant-1.6.5.jar
wrapper.java.classpath.4=C:\gridgain-1.6.1\libs\aspectjrt-1.5.3.jar
wrapper.java.classpath.5=C:\gridgain-1.6.1\libs\aspectjweaver-1.5.3.jar
wrapper.java.classpath.6=C:\gridgain-1.6.1\libs\commons-logging-1.0.3.jar
wrapper.java.classpath.7=C:\gridgain-1.6.1\libs\commons-net-1.4.1.jar
wrapper.java.classpath.8=C:\gridgain-1.6.1\libs\concurrent-1.3.jar
wrapper.java.classpath.9=C:\gridgain-1.6.1\libs\imap-1.4.jar
wrapper.java.classpath.10=C:\gridgain-1.6.1\libs\jakarta-oro-2.0.8.jar
wrapper.java.classpath.11=C:\gridgain-1.6.1\libs\javassist-4.0.4.jar
wrapper.java.classpath.12=C:\gridgain-1.6.1\libs\jboss-serialization-1.0.2.jar
wrapper.java.classpath.13=C:\gridgain-1.6.1\libs\jgroups-all-2.2.9.3.jar
wrapper.java.classpath.14=C:\gridgain-1.6.1\libs\jms-1.1.jar
wrapper.java.classpath.15=C:\gridgain-1.6.1\libs\jmxri-1.2.1.jar
wrapper.java.classpath.16=C:\gridgain-1.6.1\libs\jmxtools-1.2.1.jar
wrapper.java.classpath.17=C:\gridgain-1.6.1\libs\jnpserver-4.0.4.jar
wrapper.java.classpath.18=C:\gridgain-1.6.1\libs\log4j-1.2.15.jar
wrapper.java.classpath.19=C:\gridgain-1.6.1\libs\mailapi-1.4.jar
wrapper.java.classpath.20=C:\gridgain-1.6.1\libs\pop3-1.4.jar
wrapper.java.classpath.21=C:\gridgain-1.6.1\libs\smtp-1.4.jar
wrapper.java.classpath.22=C:\gridgain-1.6.1\libs\spring-2.0.jar
wrapper.java.classpath.23=C:\gridgain-1.6.1\libs\tidy-04aug2000-r7.jar
wrapper.java.classpath.24=C:\gridgain-1.6.1\libs\trove-1.0.2.jar
wrapper.java.classpath.25=C:\gridgain-1.6.1\gridgain-1.6.1.jar
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=C:\gridgain-1.6.1\libs
# Java Additional Parameters
wrapper.java.additional.1=-ea
wrapper.java.additional.2=-Dcom.sun.management.jmxremote
wrapper.java.additional.3=-Xms256m
wrapper.java.additional.4=-Xmx512m
# Application parameters. Add parameters as needed starting from 1
wrapper.app.parameter.1=org.gridgain.grid.loaders.cmdline.GridCommandLineLoader
wrapper.app.parameter.2=C:\gridgain-1.6.1\config\default-spring.xml
#********************************************************************
# Wrapper Windows Properties
#********************************************************************
# Title to use when running as a console
wrapper.console.title=GridGain-1.6.1
#********************************************************************
# Wrapper Windows NT/2000/XP Service Properties
#********************************************************************
# WARNING - Do not modify any of these properties when an application
# using this configuration file has been installed as a service.
# Please uninstall the service before modifying this section. The
# service can then be reinstalled.
# Name of the service
wrapper.ntservice.name=GridGain-1.6.1
# Display name of the service
wrapper.ntservice.displayname=GridGain-1.6.1
# Description of the service
wrapper.ntservice.description=GridGain Node
# Mode in which the service is installed. AUTO_START or DEMAND_START
wrapper.ntservice.starttype=AUTO_START
# Allow the service to interact with the desktop.
wrapper.ntservice.interactive=false
其中在 classpath 的部分,由於版本不同的關係,在官方網站上的 library 版本與實際安裝有出入,因此我有進行修改!
安裝、啟動、停止、移除 GridGain Service
以上步驟都完成後,就可以安裝 GridGain Service 囉! 選擇「開始 -> 執行」,輸入以下指令執行以下操作:
1、安裝 service
%GRIDGAIN_HOME%\bin\wrapper.exe -i %GRIDGAIN_HOME%\config\wrapper.conf2、啟動 service
%GRIDGAIN_HOME%\bin\wrapper.exe -t %GRIDGAIN_HOME%\config\wrapper.conf3、停止 service
%GRIDGAIN_HOME%\bin\wrapper.exe -p %GRIDGAIN_HOME%\config\wrapper.conf4、移除 service
%GRIDGAIN_HOME%\bin\wrapper.exe -r %GRIDGAIN_HOME%\config\wrapper.conf
安裝完 GridGain service 之後,就可以在服務管理的頁面上進行管理囉!
2007年12月11日 星期二
使用 Command Line(cmd.exe) 重新啟動 Windows service
今天找了一下如何透過 command line(cmd.exe) 啟動 Windows service 的方式,只要透過「NET」這個指令即可!!
NET 的使用方式,可以參考此篇文章(PC NTMMTA: 如何從命令列啟動服務)
而 cmd.exe 的參數有很多,詳細的參數說明可以參考這篇文章
其中我們用到的是 /C(命令執行完後關閉視窗) 以及 /K(命令執行完後不關閉視窗)
以下用個範例來說明:
假設在 XP 底下,要重新啟動(restart)名稱為 "Alchemi Executor Service" 的 service,選擇「開始 -> 執行」,輸入以下內容:
NET 的使用方式,可以參考此篇文章(PC NTMMTA: 如何從命令列啟動服務)
而 cmd.exe 的參數有很多,詳細的參數說明可以參考這篇文章
其中我們用到的是 /C(命令執行完後關閉視窗) 以及 /K(命令執行完後不關閉視窗)
以下用個範例來說明:
假設在 XP 底下,要重新啟動(restart)名稱為 "Alchemi Executor Service" 的 service,選擇「開始 -> 執行」,輸入以下內容:
# 透過「&&」符號可以將多個指令串接起來!或是進入命令提示字元,改輸入以下內容:
# Windows XP
C:\WINDOWS\system32\cmd.exe /C NET STOP "Alchemi Executor Service" && NET START "Alchemi Executor Service"
# Windows 2000
C:\WINNT\system32\cmd.exe /C NET STOP "Alchemi Executor Service" && NET START "Alchemi Executor Service"
NET STOP "Alchemi Executor Service"都可以達到相同目的喔!! (重新啟動 service)
NET START "Alchemi Executor Service"
2007年10月20日 星期六
[AWStats] 增加各國別(Countries)參觀詳細統計資訊
之前有接到要求,要讓顯示國家的部分出現來自各國流量所佔的比例....
恩....原本只有「網頁數」、「點擊數」「位元組」這三個選項,根本不符合要求,所以只好去看看 source code 要怎麼加上這些欄位了...
一打開 source code ....... 破萬行的程式..... Orz
看了半天,終於發現了,重點在於第 8059~8104 行,關鍵的變數為「$ShowDomainsStats」,因此我在 8049 與 8050 之間加入以下這行:
其實說到底,也只是加了一行程式,把內建的功能打開而已。
恩....原本只有「網頁數」、「點擊數」「位元組」這三個選項,根本不符合要求,所以只好去看看 source code 要怎麼加上這些欄位了...
一打開 source code ....... 破萬行的程式..... Orz
看了半天,終於發現了,重點在於第 8059~8104 行,關鍵的變數為「$ShowDomainsStats」,因此我在 8049 與 8050 之間加入以下這行:
$ShowDomainsStats = 'UVPHB';強制修改變數內容後,讓後面的顯示通通跑出來,就多出「參觀者」、「參觀次數」這兩個欄位囉! 其中還包含了百分比的計算!
其實說到底,也只是加了一行程式,把內建的功能打開而已。
2007年10月19日 星期五
[AWStats] Apache 的 Log 分析
之前將 awstats Log 分析軟體用在分析 IIS 所產生出來的 web log
這次改版為 PHP version,因此要改為分析 Apache 的 log,除了之前的設定需要注意外,基本上比較重要的在 httpd.conf 這個檔案的設定
由於 awstats 用的是 perl 去產生報表,因此 Apache 要設定為支援執行 perl 才行!
因此 httpd.conf 要作以下設定:
最後 awstats.pl 要將第一行的「#!/usr/bin/perl」改為「#!C:\Perl\bin\perl.exe」(由於我的環境是在 Windows 下,裝的是 ActivePerl;若是在 Linux 環境下就不需要修改這個部分了)
PS. 我用的架站套件是 xampp
參考資料
這次改版為 PHP version,因此要改為分析 Apache 的 log,除了之前的設定需要注意外,基本上比較重要的在 httpd.conf 這個檔案的設定
由於 awstats 用的是 perl 去產生報表,因此 Apache 要設定為支援執行 perl 才行!
因此 httpd.conf 要作以下設定:
- 在 <Directory /></Directory> 目錄中加入「Options FollowSymLinks +ExecCGI」
- 確定有加入設定「LoadModule cgi_module modules/mod_cgi.so」
- 確定有加入設定「AddHandler cgi-script .cgi .pl」
- 為了讓 awstats 可以正確的 parse log 檔案,要將 CustomLog 的設定由「common」改為「combined」
最後 awstats.pl 要將第一行的「#!/usr/bin/perl」改為「#!C:\Perl\bin\perl.exe」(由於我的環境是在 Windows 下,裝的是 ActivePerl;若是在 Linux 環境下就不需要修改這個部分了)
PS. 我用的架站套件是 xampp
參考資料
2007年9月17日 星期一
Windows Scripting - 簡易資料備份
今天收到命令,要做定時的備份工作,備份的目的地要在遠端的網路磁碟機上
掛載、卸載網路磁碟機
因此就去查詢如何在 Windows 上寫 script 掛載網路磁碟機,以下找到一段語法:
以下是他的 sample code:
資料複製
另外還要將本地資料複製到網路磁碟機上,可用以下一段簡單的語法達成:(也是範例語法)
參考資料
掛載、卸載網路磁碟機
因此就去查詢如何在 Windows 上寫 script 掛載網路磁碟機,以下找到一段語法:
WshNetwork.MapNetworkDrive接著是卸載網路磁碟機的語法:
maps a remote drive onto a local drive letter
Syntax:
WshNetwork.MapNetworkDrive (strLocalName, strRemoteName [,bUpdateProfile] [,strUser] [,strPassword])
strLocalName
Receives the drive letter to which to map the remtoe share point in strRemoteName.
strRemoteName
Receives the name ofd the remote share point that will be mapped to the drive letter in strLocalName.
bUpdateProfile
If this optional parameter is True, the mapping will be saved in the current user's profile.
strUser
When combined with strPassword, this parameter can be used to conenct to a remote drive using someone else's credentials.
strPassword
When combined with strUser, this parameter can be used to conenct to a remote drive using someone else's credentials.
WshNetwork.RemoveNetworkDrive
removes a previously mapped network drive
Syntax:
WshNetwork.RemoveNetworkDrive (strName, [,bForce] [,bUpdateProfile])
strName
Receives the name of a previously mapped share point to be removed.
bForce
If this optional parameter is set to True, then this method will remove the connection even if the resource is currently being used.
bUpdateProfile
If this optional parameter is set to True, the mapping will be removed from the current user's profile.
以下是他的 sample code:
Dim objNetwork
Set objNetwork = WScript.CreateObject("WScript.Network")
strLocalDrive = "H:"
strRemoteShare = "\\myserver\users"
objNetwork.MapNetworkDrive strLocalDrive, strRemoteShare, False '沒有第四、五個參數,表示不需帳號密碼
objNetwork.RemoveNetworkDrive strLocalDrive '卸載網路磁碟機
資料複製
另外還要將本地資料複製到網路磁碟機上,可用以下一段簡單的語法達成:(也是範例語法)
set fs = CreateObject("Scripting.FileSystemObject")
'將 c:\win98 中所有的內容複製到 z:\backup (不包含 c:\win98 資料夾)
fs.copyFolder "c:\win98","z:\win99"
'將 c:\win98 中所有的內容複製到 z:\backup (包含 c:\win98 資料夾)
fs.copyFolder "c:\win98","z:\win99\"
參考資料
2007年8月13日 星期一
Windows 2003 自動清除遠端 login session
一直以來都要手動去關閉遠端登入者的 session,現在知道怎麼讓系統在特定時間後自動清除囉! 感謝陳展今天提供這個有用的資訊!
設定方式如下:(For Windows 2003)
設定方式如下:(For Windows 2003)
群組原則gpedit.msc
=> 電腦設定
=> 系統管理範本
=> windows元件
=> 終端機服務
=> 工作階段
=> 設定已斷線工作階段的時間限制
=> 啟用並限制時間
2007年8月8日 星期三
[AWStats] IIS Log Analyzer 拾遺補缺
之前用了這套去處理 ADOC 的網頁流量分析....發現其實所呈現出來的訊息還蠻詳細的!
不過測試到後來有發現幾個問題,不過有逐一解決了...
無法 parse 之前的 log file
這個問題聽起來似乎很可怕.....其實還好...
假設在 awstats.testSite.conf 設定檔中,節錄設定如下:
假設只透過以下指令:
假設我們要從八月初開始到今日的所有 log 分析,就必須做兩個動作:
【註】summary 檔案是以一個月為單位作儲存。
程式不會自動每日分析 log
這個部分真是始料未及,原本以為他會自己做,到後來國貿局的小姐發現了跟我說,我才知道這回事.....真是汗顏....@_@
解決的方式很容易,就只要設定工作排程,每日的 23:59 讓他分析 log 就好了,不過程式執行的路徑要完整指定清楚就是了!
以下給個範例:
不過測試到後來有發現幾個問題,不過有逐一解決了...
無法 parse 之前的 log file
這個問題聽起來似乎很可怕.....其實還好...
假設在 awstats.testSite.conf 設定檔中,節錄設定如下:
# 指定所要分析的 log 檔案
LogFile="D:/webLog/W3SVC1/ex%YY-0%MM-0%DD-0.log"
# 分析結果(summary)檔案存放的位置
DirData="C:/Inetpub/wwwroot/awstats_data"
假設只透過以下指令:
perl awstats.pl -config=testSite -update則僅僅是是分析當天的 log 檔案,而假設當天為 2007/08/08,那分析完該檔案後,若要分析該日之前的 log 檔案,則會被認為是 old 的資料而不會將分析結果加入 summary 檔案中。
假設我們要從八月初開始到今日的所有 log 分析,就必須做兩個動作:
- 刪除 summary 檔案
- 再執行以下指令:
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070801.log" -update當然,也可以寫個批次檔(.bat)去跑,這樣就省事多了。
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070802.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070803.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070804.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070805.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070806.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070807.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070808.log" -update
【註】summary 檔案是以一個月為單位作儲存。
程式不會自動每日分析 log
這個部分真是始料未及,原本以為他會自己做,到後來國貿局的小姐發現了跟我說,我才知道這回事.....真是汗顏....@_@
解決的方式很容易,就只要設定工作排程,每日的 23:59 讓他分析 log 就好了,不過程式執行的路徑要完整指定清楚就是了!
以下給個範例:
C:\Perl\bin\perl.exe D:\myweb\log\cgi-bin\awstats.pl -config=myweb -update記得要加入例行性的工作囉!
2007年7月28日 星期六
Windows 中突然無法瀏覽網頁的解決方式
上個星期....不知kx為何行政組的電腦突然不能上網了....
檢查了一下,網路沒有問題,ping 各大網站也都正常回應.....
but....... telnet port 80 會有錯誤,於是就給他重灌下去了,但是卻在今晚給我發現這篇文章... Orz
似乎下載 WinSock XP Fix 就可以解決問題了!
我想用這個應該是可以解決吧! (其實我也不敢確定....哈哈)
之後有發生類似情況再來試試看好了!
檢查了一下,網路沒有問題,ping 各大網站也都正常回應.....
but....... telnet port 80 會有錯誤,於是就給他重灌下去了,但是卻在今晚給我發現這篇文章... Orz
似乎下載 WinSock XP Fix 就可以解決問題了!
我想用這個應該是可以解決吧! (其實我也不敢確定....哈哈)
之後有發生類似情況再來試試看好了!
2007年7月3日 星期二
[AWStats] Windows IIS 的 Log 分析
前言
由於工作上有 web log 分析的需求,又不想用 iTrend 2000 (感覺這套實在很遜....),於是在網路上找到這個號稱很強大又免費的工具「AWStats」,不僅可以分析 web log,連 FTP 以及 Mail 的 log 都可以分析,不過單就 Web log 而言,它可以針對 IIS、Apache、WebStar....等不同的 HTTP server 的 log 進行分析。
安裝前的準備
在安裝前,有以下兩樣工具必須先安裝起來:
1、Windows Scripting Host
2、Perl 執行環境:這個部分建議安裝 ActivePerl
當以上兩個部分都確定沒問題後,就可以上 AWStats 官方網站下載最新版的來安裝。(目前範例中安裝的是 Version 6.6)
第一次安裝 AWStats 時的設定
在第一次安裝 AWStats 後,會有一些設定必須進行:
IIS 設定
接著要進入 IIS 設定,到 site 上面按滑鼠右鍵,選擇「內容」,進行以下設定:
接著選擇「內容」進入 Log 的設定,點選 Tab「擴充內容」,只要勾選底下幾個選項即可:
接著必須暫時停止 IIS,並把原本舊有的 log file 移到其他目錄存放後,再重新啟動 IIS,之後產生的 web log 大概格式會變成如下:
AWStats 設定
首先必須將相關檔案複製到 Web Root 目錄中,假設都是在預設的情況下,必須將目錄「C:\Program Files\AWStats\wwwroot」底下的 cgi-bin、icon 兩個目錄複製到目錄「C:\Inetpub\wwwroot」中。
接著是設定檔的部分,設定檔必須存在於目錄「C:\Inetpub\wwwroot\cgi-bin」中,而其檔案名稱如下:
有了設定檔之後,接著就是修改裡面的設定來產生出我們要的 log 分析,以下是設定內容:(僅需修改以下說明的部分即可)
設定完之後,必須進入 console,進行第一次產生統計資料的動作,執行以下程式:
產生 HTML 報表
最後就是產生 HTML 報表了! 有兩種方式可以達成,第一種是直接在 console 中下指令,另一個是直接開網頁產生。一般來說,為求方便快速,當然是選後者。
假設 IIS Web Root 為剛剛上面設定的目錄 C:\Inetpub\wwwroot,則進入以下網址即可:
外掛 Plugin
看完產生出來的 HTML 報表後,點了 Country 發現,竟然沒辦法判斷國家? 於是上網找了一下,原來要開啟 GeoIPfree 這個 plugin,因此到設定檔中將此 plugin 的註解拿掉。
不過拿掉之後,還是不能跑,因為 ActivePerl 中的 module 沒辦法正確的執行這個 plugin,因此必須到 CPAN 直接下載 Geo::IPfree module,將其解壓縮後,再把 module 裡面的 Geo 目錄放到 AWStats 的 plugin 目錄中。
如此一來,就可以順利產生 static file 囉! 再回頭看 HTML 報表,也發現 Country 的部分可以成功顯示了!
後記
在官方網站的說明中,指示使用者將檔案放到 Inetpub/wwwroot 下,後來實驗發現,自己設定一個虛擬目錄存放也是可以的!
所以還是設定虛擬目錄比較好管理些.....
後來還有看到透過 FTP 將 log 傳送過來分析,也就是分析 log 的主機跟 Web server 不需要是同一台;此外,似乎還有一堆好用的 plugin 可以用,不過這個部分就等之後有空再來測試囉!
【註】雖然可以自行設定虛擬目錄存放程式,不過 icon 目錄還是必須要放在 webroot 下....(大概是程式設計的問題吧!)
由於工作上有 web log 分析的需求,又不想用 iTrend 2000 (感覺這套實在很遜....),於是在網路上找到這個號稱很強大又免費的工具「AWStats」,不僅可以分析 web log,連 FTP 以及 Mail 的 log 都可以分析,不過單就 Web log 而言,它可以針對 IIS、Apache、WebStar....等不同的 HTTP server 的 log 進行分析。
安裝前的準備
在安裝前,有以下兩樣工具必須先安裝起來:
1、Windows Scripting Host
2、Perl 執行環境:這個部分建議安裝 ActivePerl
當以上兩個部分都確定沒問題後,就可以上 AWStats 官方網站下載最新版的來安裝。(目前範例中安裝的是 Version 6.6)
第一次安裝 AWStats 時的設定
在第一次安裝 AWStats 後,會有一些設定必須進行:
# 這邊只是告訴你之後要進行一些基本的設定
----- AWStats awstats_configure 1.0 (build 1.6) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).
# 工具偵測出目前的 OS 是 Windows
-----> Running OS detected: Windows
# Web server 的設定
-----> Check for web server install
# 以下要指定 Apache 的設定
awstats_configure did not find your Apache web main runtime.
Please, enter full directory path of your Apache web server or
'none' to skip this step if you don't have local web server or
don't have permission to change its setup.
Example: c:Program filesapache groupapache
Apache Web server path ('none' to skip):
> none # 由於是用在IIS上,因此Apache的設定就跳過
Your web server config file(s) could not be found.
You will need to setup your web server manually to declare AWStats
script as a CGI, if you want to build reports dynamically.
See AWStats setup documentation (file docs/index.html)
-----> Update model config file 'C:/Program Files/AWStatswwwrootcgi-binawstats.model.conf'
File awstats.model.conf updated.
# 第一次安裝要產生設定檔,直接按 y 過去了
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y
# 設定 web site 的名稱(下面有範例,可以參考進行設定)
-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> testSite
-----> Create config file 'C:/Program Files/AWStatswwwrootcgi-binawstats.testSite.conf'
Config file C:/Program Files/AWStatswwwrootcgi-binawstats.testSite.conf created.
-----> Add update process inside a scheduler
Sorry, for Windows users, if you want to have statistics to be
updated on a regular basis, you have to add the update process
in a scheduler task manually (See AWStats docs/index.html).
Press ENTER to continue...
A SIMPLE config file has been created: C:/Program Files/AWStatswwwrootcgi-bin
awstats.testSite.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'testSite' with command:
> perl awstats.pl -update -config=testSite
You can also build static report pages for 'testSite' with command:
> perl awstats.pl -output=pagetype -config=testSite
Press ENTER to finish...
IIS 設定
接著要進入 IIS 設定,到 site 上面按滑鼠右鍵,選擇「內容」,進行以下設定:
- 確定選項「啟用紀錄(E)」有勾選
- 使用中的日誌格式必須選擇「W3C Extended Log File Format」
接著選擇「內容」進入 Log 的設定,點選 Tab「擴充內容」,只要勾選底下幾個選項即可:
- 日期 (date)
- 時間 (time)
- 用戶端 IP 位址 (c-ip)
- 使用者名稱 (cs-username)
- 方法 (cs-method)
- URI 粗縱線 (cs-uri-stem)
- URI 查詢 (cs-uri-query)
- 通訊協定狀態 (sc-status)
- 送出的位元組 (sc-bytes)
- 通訊協定版本 (cs-version)
- 使用者代理程式 (cs(User-Agent))
- 推薦者 (cs(Referer))
接著必須暫時停止 IIS,並把原本舊有的 log file 移到其他目錄存放後,再重新啟動 IIS,之後產生的 web log 大概格式會變成如下:
2007-07-03 06:29:00 140.137.4.232 - GET /test/Default.htm - 304 223 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+Avant+Browser;+Avant+Browser;+.NET+CLR+1.0.3705;+.NET+CLR+1.1.4322;+InfoPath.1;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.30) -
2000-07-19 14:14:14 62.161.78.73 - GET / 200 1234 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0) http://www.from.com/from.htm
AWStats 設定
首先必須將相關檔案複製到 Web Root 目錄中,假設都是在預設的情況下,必須將目錄「C:\Program Files\AWStats\wwwroot」底下的 cgi-bin、icon 兩個目錄複製到目錄「C:\Inetpub\wwwroot」中。
接著是設定檔的部分,設定檔必須存在於目錄「C:\Inetpub\wwwroot\cgi-bin」中,而其檔案名稱如下:
awstats.<your_site_name>.conf若沒有此檔案,可複製範例設定檔(awstats.model.conf)後,修改檔名即可使用。
有了設定檔之後,接著就是修改裡面的設定來產生出我們要的 log 分析,以下是設定內容:(僅需修改以下說明的部分即可)
# "LogFile" contains the web, ftp or mail server log file to analyze.
# Possible values: A full path, or a relative path from awstats.pl directory.
# Example: "/var/log/apache/access.log"
# Example: "../logs/mycombinedlog.log"
# You can also use tags in this filename if you need a dynamic file name
# depending on date or time (Replacement is made by AWStats at the beginning
# of its execution). This is available tags :
# %YYYY-n is replaced with 4 digits year we were n hours ago
# %YY-n is replaced with 2 digits year we were n hours ago
# %MM-n is replaced with 2 digits month we were n hours ago
# %MO-n is replaced with 3 letters month we were n hours ago
# %DD-n is replaced with day we were n hours ago
# %HH-n is replaced with hour we were n hours ago
# %NS-n is replaced with number of seconds at 00:00 since 1970
# %WM-n is replaced with the week number in month (1-5)
# %Wm-n is replaced with the week number in month (0-4)
# %WY-n is replaced with the week number in year (01-52)
# %Wy-n is replaced with the week number in year (00-51)
# %DW-n is replaced with the day number in week (1-7, 1=sunday)
# use n=24 if you need (1-7, 1=monday)
# %Dw-n is replaced with the day number in week (0-6, 0=sunday)
# use n=24 if you need (0-6, 0=monday)
# Use 0 for n if you need current year, month, day, hour...
# Example: "/var/log/access_log.%YYYY-0%MM-0%DD-0.log"
# Example: "C:/WINNT/system32/LogFiles/W3SVC1/ex%YY-24%MM-24%DD-24.log"
# You can also use a pipe if log file come from a pipe :
# Example: "gzip -d </var/log/apache/access.log.gz |"
# If there are several log files from load balancing servers :
# Example: "/pathtotools/logresolvemerge.pl *.log |"
# 指定 Log File 的位址,可按照上面詳細的說明
# 在此範例中,檔名為 ex070703.log
LogFile="D:/webLog/W3SVC1/ex%YY-0%MM-0%DD-0.log"
# W:表示處理的是 Web Log
LogType=W
# IIS 就直接設定為 2
LogFormat=2
# Site 名稱
SiteDomain="testSite"
# 除了 siteDomain,若有其他別名,就設定在這邊
HostAliases="testsite db3.pccu.edu.tw 127.0.0.1 localhost"
# DNS 查詢設定
DNSLookup=2
# 使用 Perl 跑出來的統計資料所存放的位置
# 若使用預設值「.」,則表示存放在與 awstats.pl 檔案相同的目錄中
DirData="C:/Inetpub/wwwroot/awstats_data"
# 主程式所存放的目錄
DirCgi="/cgi-bin"
# 產生網頁所需圖檔所存放的目錄
DirIcons="/icon"
# 是否允許由網頁直接更新結果
# 預設為0,表示必須進入 console 使用下指令更新
# 因此為了看到即時更新的結果,這邊改為允許(1)
AllowToUpdateStatsFromBrowser=1
設定完之後,必須進入 console,進行第一次產生統計資料的動作,執行以下程式:
C:\Documents and Settings\Administrator>cd C:\Inetpub\wwwroot\cgi-bin接著進入目錄 C:\Inetpub\wwwroot\awstats_data 中,就可以看見有統計資料產生出來了! 另外關於有 dopped、corrupted....等 record,可參考官方網站的說明。
C:\Inetpub\wwwroot\cgi-bin>perl awstats.pl -config=testSite -update
Create/Update database for config "./awstats.testSite.conf" by AWStats version 6.6 (build 1.887)
From data in log file "D:webLogW3SVC1ex070703.log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 663
Found 1 dropped records,
Found 4 corrupted records,
Found 0 old records,
Found 658 new qualified records.
# 以上可以看見 Log 檔已經 parse 完成
產生 HTML 報表
最後就是產生 HTML 報表了! 有兩種方式可以達成,第一種是直接在 console 中下指令,另一個是直接開網頁產生。一般來說,為求方便快速,當然是選後者。
假設 IIS Web Root 為剛剛上面設定的目錄 C:\Inetpub\wwwroot,則進入以下網址即可:
# testSite 為設定檔中指定的 site domain
http://your.site.domain/cgi-bin/awstats.pl?config=testSite
外掛 Plugin
看完產生出來的 HTML 報表後,點了 Country 發現,竟然沒辦法判斷國家? 於是上網找了一下,原來要開啟 GeoIPfree 這個 plugin,因此到設定檔中將此 plugin 的註解拿掉。
不過拿掉之後,還是不能跑,因為 ActivePerl 中的 module 沒辦法正確的執行這個 plugin,因此必須到 CPAN 直接下載 Geo::IPfree module,將其解壓縮後,再把 module 裡面的 Geo 目錄放到 AWStats 的 plugin 目錄中。
如此一來,就可以順利產生 static file 囉! 再回頭看 HTML 報表,也發現 Country 的部分可以成功顯示了!
後記
在官方網站的說明中,指示使用者將檔案放到 Inetpub/wwwroot 下,後來實驗發現,自己設定一個虛擬目錄存放也是可以的!
所以還是設定虛擬目錄比較好管理些.....
後來還有看到透過 FTP 將 log 傳送過來分析,也就是分析 log 的主機跟 Web server 不需要是同一台;此外,似乎還有一堆好用的 plugin 可以用,不過這個部分就等之後有空再來測試囉!
【註】雖然可以自行設定虛擬目錄存放程式,不過 icon 目錄還是必須要放在 webroot 下....(大概是程式設計的問題吧!)
2007年5月3日 星期四
[WinXP] STOP: c000021a Unknown Hard Error 解決方法
今天一位老師拿了他的 NB 來資中.....說無法開機,要請我們協助修復....
結果某人就把這個任務交給我了...... Orz (心中OS:好康的都沒我的份啦!)
情況如下:
開機後會出現 winlogon.exe 應用程式錯誤之類的訊息,會詢問 user 是否要進行偵錯;不過不論是按確定或取消,最後就會進入 Windows 常見的藍白畫面,出現以下訊息:
查到了一堆奇怪的資料:
奇怪資料一:
Winlogon.exe 是木馬! 而且是一支極為難處理的木馬! 看到這我心都涼一半了,印了 google 大神給的指示後開始處理,發現電腦的症狀跟網路上的說明完全不符.......結果發現搞錯了!
木馬的 Winlogon.exe 的「W」是大寫的喔!! 不是小寫的.....
奇怪資料二:
這時候某人就給我看了一篇大陸網友的說明,說只要找台正常安裝 Windows XP SP2 的電腦,在 C:/WINDOWS/system32 目錄下,複製一份正常的 winlogon.exe,然後在 copy 到壞掉的電腦中,就可以「激活」那台電腦了!(激活是啥意思我也不太懂,應該是讓他復活的意思吧! 呵呵....)
於是從電腦中複製一份 winlogon.exe 出來,結果進安全模式,死都不讓我覆蓋原檔案........好吧,拆機把硬碟拿下來,接上外接盒來做,就 OK 啦! 不過問題有解決嗎? 當然沒有! 不是說可以激活嗎?? @_@
奇怪資料三:
奇怪資料還真多,而且這次的奇怪資料還是由微軟提供的......他說這種錯誤訊息,需要把 Windows 升級到 Service Pack 2(已經是SP2了好ㄅㄟ),或是 IE 要升級到 Service Pack 1(早就已經是SP1啦!!),想當然爾,問題有解決嗎? 依然沒有..........而且我還下載 IE7 來裝ㄌㄟ....也是沒用......
終於找到的正解:
最後終於找到一篇文章(連結忘記了....Orz),裡面說明到,只要把 XP 光碟放進去讓他開機,"修復" Windows 就好了! 啥......原來只要用修復就行了....真是浪費了好多無謂的時間.....@_@
不過要記得,不是一開始按 "R" 選修復喔! 這樣會跑進 console 模式....
而是要選擇繼續,讓安裝程序搜尋出電腦中安裝的 Windows,再進行修復! 整個程序大約三四十分鐘,就可以正常登入了!
不用輸入帳號密碼的登入方式:
由於老師的電腦,不需要輸入帳號密碼就可以登入了,之前又手賤設定了管理者密碼,因此必須要把他設定回來........可是這個我也沒設定過.... Orz
還好在網路上找到資料了! 只要在開始->執行那邊,輸入「control userpasswords2」進行設定就行了! 圖文教學可以看這一篇文章 !
結果某人就把這個任務交給我了...... Orz (心中OS:好康的都沒我的份啦!)
情況如下:
開機後會出現 winlogon.exe 應用程式錯誤之類的訊息,會詢問 user 是否要進行偵錯;不過不論是按確定或取消,最後就會進入 Windows 常見的藍白畫面,出現以下訊息:
STOP:c000021a Unknown Hard Error這.......我可從來沒遇過....搞了我一個下午.....
查到了一堆奇怪的資料:
奇怪資料一:
Winlogon.exe 是木馬! 而且是一支極為難處理的木馬! 看到這我心都涼一半了,印了 google 大神給的指示後開始處理,發現電腦的症狀跟網路上的說明完全不符.......結果發現搞錯了!
木馬的 Winlogon.exe 的「W」是大寫的喔!! 不是小寫的.....
奇怪資料二:
這時候某人就給我看了一篇大陸網友的說明,說只要找台正常安裝 Windows XP SP2 的電腦,在 C:/WINDOWS/system32 目錄下,複製一份正常的 winlogon.exe,然後在 copy 到壞掉的電腦中,就可以「激活」那台電腦了!(激活是啥意思我也不太懂,應該是讓他復活的意思吧! 呵呵....)
於是從電腦中複製一份 winlogon.exe 出來,結果進安全模式,死都不讓我覆蓋原檔案........好吧,拆機把硬碟拿下來,接上外接盒來做,就 OK 啦! 不過問題有解決嗎? 當然沒有! 不是說可以激活嗎?? @_@
奇怪資料三:
奇怪資料還真多,而且這次的奇怪資料還是由微軟提供的......他說這種錯誤訊息,需要把 Windows 升級到 Service Pack 2(已經是SP2了好ㄅㄟ),或是 IE 要升級到 Service Pack 1(早就已經是SP1啦!!),想當然爾,問題有解決嗎? 依然沒有..........而且我還下載 IE7 來裝ㄌㄟ....也是沒用......
終於找到的正解:
最後終於找到一篇文章(連結忘記了....Orz),裡面說明到,只要把 XP 光碟放進去讓他開機,"修復" Windows 就好了! 啥......原來只要用修復就行了....真是浪費了好多無謂的時間.....@_@
不過要記得,不是一開始按 "R" 選修復喔! 這樣會跑進 console 模式....
而是要選擇繼續,讓安裝程序搜尋出電腦中安裝的 Windows,再進行修復! 整個程序大約三四十分鐘,就可以正常登入了!
不用輸入帳號密碼的登入方式:
由於老師的電腦,不需要輸入帳號密碼就可以登入了,之前又手賤設定了管理者密碼,因此必須要把他設定回來........可是這個我也沒設定過.... Orz
還好在網路上找到資料了! 只要在開始->執行那邊,輸入「control userpasswords2」進行設定就行了! 圖文教學可以看這一篇文章 !
2007年4月30日 星期一
[SQL Server] 2005 中 sa 帳號無法登入的處理方式
基本上,在安裝時必須選擇混合模式,安裝完後,透過 Windows 驗證的方式進入 SQL Server 2005,在安全性的地方將 sa 的帳號啟用!
若忘記 sa 的密碼,重設 sa 密碼的語法如下:
其他詳細資料可參考以下連結:
若忘記 sa 的密碼,重設 sa 密碼的語法如下:
exec sp_password @new = 'sanewpassword', @loginame = 'sa'
其他詳細資料可參考以下連結:
訂閱:
文章 (Atom)