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.16 。修正 `Makefile.PL` 安装所需最低 Perl 版本的错误。若你之前安装了 `reslog` 3.13 版或之后的版本，不需要升级新版。下载 `reslog` 3.16 版。

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-cn` 档的升级说明。

### 以 `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 指令说明。