reslog 3.05 版
Author: 依瑪貓
Keywords: DNS 反查, HostNameLookups, Apache, Analog, 記錄檔

# `reslog` 3.05 版

## 最新消息

2005-05-08
  `reslog` 最新版本 3.05 。修正 `STDIN` 不可用時會產生錯誤的問題。下載 `reslog` 3.05 版。
2005-05-08
  `reslog` 最新版本 3.04 。修正載入 `File::MMagic` 時的別字。下載 `reslog` 3.04 版。
2005-05-08
  `reslog` 最新版本 3.03 。預設安裝目錄改回到 `/sbin` ，加上 `make upgrade` 以刪除舊版檔案，並解決了之前檔案鎖定方法不一的問題。下載 `reslog` 3.03 版。
2005-05-02
  `reslog` 最新版本 3.02 。反查程式現在與主程式互相獨立，在 `MSWin32` 與 `cygwin` 上測試執行無誤，並解決了好幾個小問題。下載 `reslog` 3.02 版。
2005-04-26
  `reslog` 最新版本 3.01 。修正了一個嚴重的錯誤，錯使 `--suffix` 與 `--trim-suffix` 處理了錯誤的檔尾。若你下載安裝了 3.01 版，請立即昇級更新。下載 `reslog` 3.01 版。
2005-04-26
  `reslog` 最新版本 3.00 。我用物件導向模式，從頭重寫。新加上 ithreads 多線程功能，大幅加快執行速度。支援 bzip2 壓縮檔。支援用 `gzip` 或 `bzip2` 程式解壓縮，不需安裝 `Compress::Zlib` 和 `Compress::Bzip2` 模組（不建議使用）。可先裁掉某些檔尾，再加上我們的檔尾，以便和其他記錄檔處理程式一起作業。下載 `reslog` 3.00 版。
2002-09-18
  `reslog.pl` 最新版本 2.1.0dev2 。本版修正了幾個說明文件的錯誤，並把 SourceForge 加進 `reslog.pl` 的下載網址中。妳可以把它當做SourceForge 紀念版。原則上，不需要急著昇級。下載 `reslog.pl` 2.1.0dev2 版。
2002-09-17
  好消息！ `reslog.pl` 已開始架設於 SourceForge 囉！（雖然我幾乎還完全搞不清楚要怎麼架……摸索中…… ^^; ）
2002-08-31
  `reslog.pl` 最新版本 2.1.0dev1 。本版修正了無法在 Perl 5.8.0 執行的錯誤。我暫時還把她當成是dev研發版，因為我想在 2.1.0 正式版的時候，支援 `Compress::Bzip2` 與 `ExtUtils::MakeMaker` 。不過她其實很穩定。下載 `reslog.pl` 2.1.0dev2 版。

## 說明

`reslog` 是記錄檔的反查程式，用來反查 Apache 記錄檔裏 IP 的主機名稱。查過後，可以套用像 Analog 之類的記錄檔統計程式。妳可以把它當做 Apache `HostNameLookups` 指令的替代品，每天一次反查當天所有的 IP 。

## 注意事項

- 反查網域名稱很耗時間。時間主要耗在查詢上：防火牆過濾網路封包，網域名稱伺服器設錯、沒有開機、位在慢速網路上、等級太低反應慢、網路塞車……等。這些外部因素，都不是程式本身能控制的。
- 若程式半途中斷，如按了 `Ctrl-Break` ，可能會殘餘一個暫時工作檔。下次執行時碰到殘存的暫時工作檔，程式會拒絕執行跳出。請先處理殘存的暫時工作檔。妳可以把暫時工作檔當成原來的記錄檔來用，重新反查。
- 本程式需要很多暫存資料的空間。硬碟和記憶體比起來，價格便宜，用起來也比較省，所以我用硬碟暫存。這個程式需要原記錄檔兩倍以上的硬碟空間，才能執行（用記憶體暫存的話要用十倍）。請檢查硬碟空間夠不夠。

## 系統需求

1. Perl 5.8.0 以上。新版的 `reslog` 用多線程加速反查，要用到 Perl 5.8.0 之後的新 ithread 多線程模式。你若不想用多線程功能，可以不用，不過程式碼本身，還是要用到 ithread 。若你用的是 5.8.0 以前的 Perl 版本，請昇級你的 Perl 。你可以輸入 `perl -v` 查詢你目前的 Perl 版本。如果你沒有 Perl 或需要昇級，可以到 Perl 網站下載安裝最新版 Perl 。若妳是用 MSWin32 ，可以到 ActiveState 公司下載 ActivePerl 安裝。
2. 需搭配的 Perl 模組：無。
3. 選配的 Perl 模組：
   `File::MMagic`
     這是檢查檔案類型用的。若沒有安裝， `reslog` 會試著去找 `file` 程式代替。若還找不到， `reslog` 會改用檔尾（副檔名）判斷檔案類型。這時若從標準輸入讀檔， `reslog` 會無法判斷。 MSWin32 使用者可以由 GnuWin32 網站下載 `file.exe` 程式。請確認下載後，存檔在系統的路徑下，檔名為 `file.exe` 。
   `Compress::Zlib`
     這是處理 gzip 壓縮檔用的，只有在處理 gzip 壓縮檔才會用到。若要用時沒有安裝， `reslog` 會試著改用 `gzip` 程式代替。若還找不到， `reslog` 就無法執行。若你是 ActivePerl MSWin32 使用者，可以用 `ppm install Compress::Zlib` 安裝，或由 gzip 網站下載 `gzip.exe`。請確認下載後，存檔在系統的路徑下，檔名為 `gzip.exe` 。
   `Compress::Bzip2` 第二版以上
     這是處理 bzip2 壓縮檔用的，只有在處理 bzip2 壓縮檔才會用到。若要 用時沒有安裝， `reslog` 會試著改用 `bzip2` 程式代替。若還找不到， `reslog` 就無法執行。到我寫這一篇說明的時候為止， ActivePerl MSWin32 的 PPM 模組庫裏都還沒有 `Compress::Bzip2` 。不過 MSWin32 的使用者還是可以由 bzip2 網站 下載 `bzip2.exe` 。請確認下載後，存檔在系統的路徑下，檔名為 `bzip2.exe` 。
   `Term::Size`
     這是顯示進度列用的，若沒有安裝，就不會顯示進度列。此外不會有任何問題。進度列可以讓你對 `reslog` 的工作進度一目瞭然。 `Term::Size` 只能在 UNIX 下安裝，在 MSWin32 下， reslog 會改用 `Win32::Console` 。
   若沒有上列 Perl 模組，請到 CPAN 程式庫 下載安裝。

## 下載

`reslog` 的官方網站在：

- SourceForge 上的 `reslog` 網站。
- `reslog` SourceForge 專案頁。
- `reslog` CPAN 專案頁。
- 旅舍依瑪 `reslog` 網頁

最新版 `reslog` 可由下列位址下載：

- `reslog` SourceForge 下載頁。
- `reslog` CPAN 專案頁。
- 旅舍依瑪 FTP 站。

依瑪貓的 PGP 公鑰在：

- `reslog` SourceForge 網站上的依瑪貓 PGP 公鑰。
- 旅舍依瑪上的依瑪貓 PGP 公鑰。

## 安裝

其實， `reslog` 根本不用安裝。直接跑就是了。 ^_*'

好吧，如果你不給它安裝個一下，就會輾轉難眠的話，那就請看以下的安裝指南吧。再次強調，妳可以不用看以下的安裝指南。直接跑就是了。

從第三版起， `reslog` 改用 Perl 標準的 `ExtUtils::MakeMaker` 安裝，程序如下：

>     % perl Makefile.PL
>     % make
>     % make test
>     % make install

在 `make install` 前，請先確認你有在安裝目錄存檔的權限。通常這時後都要切到 `root` ，才能安裝存檔。

如果你是用 MSWin32 下的 ActivePerl ， `make` 請改用 `nmake` 。 `nmake` 可由微軟的 FTP 站下載。

若要安裝到其它地方，請設定好 `PREFIX` 。例如，一個一般使用者，要安裝在自己的目錄下時：

>     % perl Makefile.PL PREFIX=/home/jessica

要知道更多安裝選項的細節，請參閱 `ExtUtils::MakeMaker` 的說明（請執行 `perldoc ExtUtils::MakeMaker` ）。

若你是由 `reslog.pl` 3.02 以前的版本昇級，請參閱 `UPGRADE.zh-tw` 檔的昇級說明。

## 命令列參數

    ./reslog [參數] [記錄檔...]
    ./reslog [-h|-v]

記錄檔
  要反查的記錄檔。若沒有指定，會從標準輸入讀記錄檔，再寫到標準輸出。妳也可以設定成`-`，來從標準輸入讀記錄檔。可同時指定好幾個檔案，若其中有標準輸入，會通通寫到標準輸出。支援 gzip 或 bzip2 壓縮檔。
-o, --override=模式
  如果有同名的反查結果檔，該怎麼辦。目前有下列模式：
  o, overwrite
    蓋掉舊檔。
  a, append
    和舊檔加在一起。
  f, fail
    結束程式，以免不小心破壞舊檔。預設是結束程式。
-k, --keep=模式
  原記錄檔要怎麼處理。目前有下列模式：
  a, all
    保留原檔。
  r, restart
    反查後，原記錄檔歸零。預設是原記錄檔歸零。
  d, delete
    反查後，刪除原記錄檔。
-s, --suffix=檔尾
  反查結果檔要加上的檔尾。預設的檔尾是`.resolved`。
-t, --trim-suffix=檔尾
  加上我們的檔尾前，先去掉的原檔檔尾。預設是不去檔尾。若你用好幾個記錄檔處理程式處理記錄檔，可以用這個選項，去掉之前程式加的檔尾。
-n, --num-threads=線程數
  反查時，同時執行的線程數。預設值是 10 。若不要用多線程反查，請設為 0 。系統本身要支援多線程。若系統本身不支援多線程，本選項沒有作用。
-c, --stdout
  把結果輸出到標準輸出。
-d, --debug
  顯示詳細的執行過程。
-q, --quiet
  沒事不要吵。 :p
-h, --help
  顯示程式說明。
-v, --version
  顯示程式版本。

## 版權聲明

版權所有 © 2001-2005 依瑪貓。依瑪貓保有所有權利。

本程式是自由軟體，您可以遵照自由軟體基金會 (Free Software Foundation) 出版的 GNU 通用公共許可證條款 (GNU General Public License) 第二版來修改和重新發佈這一程式，或者自由選擇使用任何更新的版本。

發佈這一程式的目的是希望它有用，但沒有任何擔保。甚至沒有適合特定目的而隱含的擔保。更詳細的情況請參閱 GNU 通用公共許可證。

您應該已經和程式一起收到一份 GNU 通用公共許可證的副本。如果還沒有，寫信給： Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

## 版本紀錄

請閱讀 `Changes` 檔，查看程式的演變、新增的功能和修補的錯誤。

## 錯誤回報

`reslog` 有一個郵件通訊 `reslog-users@lists.sourceforge.net` ，若有任何問題、建議、問題回報、修補程式，請寄到郵件通訊上。除非有私人事務，否則請不要直接寫信給我。郵件通訊會自動歸檔，日後若其他人有相同問題，可以直接在通訊舊檔中找到答案，節省大家寶貴的時間。

||

本頁符合 XHTML 1.1 / CSS 2.1 / 無障礙網頁規範 1.0 三 A 級標準