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

正體中文 | 简体中文 | English

:::

# `reslog` 3.16 版

## 最新消息

2007-12-04

  `reslog` 最新版本 3.16 。新版修正 `Compress::Bzip2` 製作的空檔所產生的問題。下載 `reslog` 3.16 版。

2007-12-03

  `reslog` 最新版本 3.15 。修正 `Makefile.PL` 安裝所需最低 Perl 版本的錯誤。若妳之前安裝了 `reslog` 3.13 版或之後的版本，不需要昇級新版。下載 `reslog` 3.15 版。

2007-12-03

  `reslog` 最新版本 3.14 。新版有好幾個說明文件、測試程式修正。若妳之前安裝了 `reslog` 3.13 版，不需要昇級新版。下載 `reslog` 3.14 版。

2007-12-03

  `reslog` 最新版本 3.13 。新版有很多程式碼改進、錯誤修正、測試程式改進、說明文件修正。下載 `reslog` 3.13 版。

2007-07-23

  `reslog` 最新版本 3.12 。修正無 IP 反解時的錯誤。下載 `reslog` 3.12 版。

2007-07-23

  `reslog` 最新版本 3.11 。修正在無線程 Perl 上執行的問題，以 `file` 程式檢查標準輸入檔案類型的問題，修正安裝檔案位置以符合 Perl 標準安裝設定，並加上支援用 `Module::Build` 安裝。下載 `reslog` 3.11 版。

2007-07-22

  `reslog` 最新版本 3.10 。說明文件修正。下載 `reslog` 3.10 版。

2007-07-21

  `reslog` 最新版本 3.09 。版權更新為 GPLv3 ，及多項問題修正。下載 `reslog` 3.09 版。

2005-05-22

  `reslog` 最新版本 3.08 。說明文件修正。下載 `reslog` 3.08 版。

2005-05-22

  `reslog` 最新版本 3.07 。重整程式碼，以便在更多平台上執行。目前可在下列平台上執行： Linux 、 MS-Windows 、 Cygwin 、 Solaris 、 FreeBSD 與 MacOSX Darwin 。下載 `reslog` 3.07 版。

2005-05-16

  `reslog` 最新版本 3.06 。重整測試程式，以使測試結果更正確、有效。下載 `reslog` 3.06 版。

2005-05-08

  `reslog` 最新版本 3.05 。修正標準輸入不可用時會產生錯誤的問題。下載 `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 。反查程式現在與主程式互相獨立，在 MS-Windows 與 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 ，可能會殘餘一個暫時工作檔。下次執行時碰到殘存的暫時工作檔，程式會拒絕執行跳出。請先處理殘存的暫時工作檔。妳可以把暫時工作檔當成原來的記錄檔來用，重新反查。

- 本程式需要很多暫存資料的空間。硬碟和記憶體比起來，價格便宜，用起來也比較省，所以我用硬碟暫存。這個程式需要原記錄檔解壓後兩倍以上的硬碟空間，才能執行（用記憶體暫存的話要用十倍）。請檢查硬碟空間夠不夠。

- `reslog` 尚未支援 IPv6 。

- 我建議安裝 `File::MMagic` ，儘量不要用 `file` 程式。 `File::MMagic` 內建的檔案類型表好像比 `file` 程式準確。若不是 `gzip` 或 `bzip2` 壓縮檔， `reslog` 會把視為當成純文字檔。若壓縮檔被誤判為圖檔， `reslog` 會當成純文字檔，直接讀記錄，並以錯誤結束。就算錯誤也不會弄亂原記錄檔，不過多少有點麻煩。

## 系統需求

1. Perl 5.8.0 以上。 `reslog` 用三個參數的 `open()` 來複製檔案操作，我還不知道怎麼改寫到更早的版本上執行。若妳可以改寫到更早的版本上執行，請告訴我。妳可以輸入 `perl -v` 查詢妳目前的 Perl 版本。如果妳沒有 Perl 或需要昇級，可以到 Perl 網站下載安裝最新版 Perl 。若妳是用 MS-Windows ，可以到 ActiveState 公司下載 ActivePerl 安裝。

2. 需搭配的 Perl 模組：無。

3. 選配的 Perl 模組：

   `File::MMagic`

     這是檢查檔案類型用的。若沒有安裝， `reslog` 會找 `file` 程式代替。若還找不到， `reslog` 會改用檔尾（副檔名）判斷檔案類型。這時若從標準輸入讀檔， `reslog` 就無法判斷了。若妳是 ActivePerl 使用者，可以執行 `ppm install File::MMagic` 安裝。 MS-Windows 使用者亦可由 GnuWin32 網站下載 `file.exe` 程式。請確認下載後，存檔在系統的路徑下，檔名為 `file.exe` 。

     建議用 `File::MMagic` 。 `file` 程式偶爾會誤判。

   `Compress::Zlib`

     這是處理 `gzip` 壓縮檔用的，只有在處理 `gzip` 壓縮檔才會用到。若要用時沒有安裝， `reslog` 會試著改用 `gzip` 程式代替。若還找不到， `reslog` 就無法執行。若妳是 ActivePerl 使用者，可以執行 `ppm install Compress::Zlib` 安裝。 MS-Windows 使用者亦可由 `gzip` 網站下載 `gzip.exe`。請確認下載後，存檔在系統的路徑下，檔名為 `gzip.exe` 。

   `Compress::Bzip2` 第二版以上

     這是處理 `bzip2` 壓縮檔用的，只有在處理 `bzip2` 壓縮檔才會用到。若要 用時沒有安裝， `reslog` 會試著改用 `bzip2` 程式代替。若還找不到， `reslog` 就無法執行。到我寫這一篇說明的時候為止， ActivePerl 的 PPM 模組庫裏都還沒有 `Compress::Bzip2` 。不過 MS-Windows 的使用者還是可以由 `bzip2` 網站 下載 `bzip2.exe` 。請確認下載後，存檔在系統的路徑下，檔名為 `bzip2.exe` 。

   `Term::ReadKey`

     這是顯示進度列用的，若沒有安裝，就不會顯示進度列。此外不會有任何問題。進度列可以讓妳對 `reslog` 的工作進度一目瞭然。

   若沒有上列 Perl 模組，請到 CPAN 程式庫下載安裝。

## 下載

`reslog` 的官方網站在：

- SourceForge 上的 `reslog` 網站。

- `reslog` SourceForge 專案頁。

- `reslog` CPAN 專案頁。

- 旅舍依瑪 `reslog` 網頁

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

- `reslog` SourceForge 下載頁。

- `reslog` CPAN 專案頁。

- 旅舍依瑪 FTP 站。

依瑪貓的 PGP 公鑰在：

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

- 旅舍依瑪上的依瑪貓 PGP 公鑰。

## 安裝

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

### 以 `ExtUtils::MakeMaker` 安裝

`reslog` 用 Perl 標準的 `ExtUtils::MakeMaker` 安裝，程序如下：

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

在 `make install` 前，請先確認妳有在安裝目錄存檔的權限。通常這時候要切換為 `root` ，才能安裝存檔。

若妳是用 MS-Windows 下的 ActivePerl ， `make` 請改用 `nmake` 。 `nmake` 可由微軟的 FTP 站下載。

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

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

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

### 以 `Module::Build` 安裝

若妳喜歡，也可以用 `Module::Build` 安裝，程序如下：

>     % perl Build.PL
>     % ./Build
>     % ./Build test
>     % ./Build install

在 `./Build install` 前，請先確認妳有在安裝目錄存檔的權限。通常這時候要切換為 `root` ，才能安裝存檔。

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

>     % perl Build.PL --prefix=/home/jessica

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

## 命令列參數

    ./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-2007 依瑪貓。依瑪貓保有所有權利。

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

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

您應該已經和程式一起收到一份 GNU 通用公共許可證的副本。如果還沒有，參閱`<http://www.gnu.org/licenses/>`。

## 版本紀錄

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

## 支援協助

`reslog` 網站架在 SourceForge 、 CPAN 與 旅舍依瑪。索取最新資訊，請駕臨：

- SourceForge 上的 `reslog` 網站。

- `reslog` SourceForge 專案頁。

- `reslog` CPAN 專案頁。

- 旅舍依瑪 `reslog` 網頁。

在 SourceForge 上有一個 `reslog` 的郵件通訊 。使用上的問題、建議或錯誤回報，請提到通訊上討論。它是 Mailman 的郵件通訊。若要加入，請到 `reslog` 郵件通訊的網頁 。妳也可以寫信到 E-mail 指令信箱，標題填上 `help` ，索取 E-mail 指令說明。