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

## 命令列参数

    ./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 级标准