arclog 最新版本 3.02 。修正测试套件,以处理日光节约时间问题。下载 arclog 3.02 版。
arclog 最新版本 3.01 。修正测试套件,以协助厘清 CPAN 测试回报的错误。下载 arclog 3.01 版。
arclog 最新版本 3.00 。从 reslog 借过来的全新程式码,档名也从 arclog.pl 改为 arclog 。新的物件导向处理器,可顺利处理各种压缩法及档案格式。安装系统由 GNU autoconf 改用 Perl 的 ExtUtils::MakeMaker 和 Module::Build 。新加上完整的测试套件,协助程式品管。下载 arclog 3.00 版。
arclog.pl 最新版本 2.1.0 。这是 2.1.0 的最终版,加上了 bzip2 压缩的支援,用 gzip 程式代替 Compress::Zlib 压缩,并改用 GNU autoconf 安装设定程式。下载 arclog.pl 2.1.0 。
arclog.pl 最新版本 2.1.0dev2 。本版修正了几个说明文件的错误,并把 SourceForge 加进 arclog.pl 的下载网址中。你可以把它当做申请 SourceForge 纪念版
。原则上,不需要急著升级。下载 arclog.pl 2.1.0dev2 。
好消息! arclog.pl 已开始架设於 SourceForge 罗!(虽然我几乎还完全搞不清楚要怎么架…摸索中… ^^; )
arclog 是记录档每月归档程式,将记录档中,前月的记录按月份压缩归档,以节省硬碟空间,并避免记录档被有心人士破坏。
arclog 目前支援 Apache 、 Syslog 、 NTP 、 Apache 1 SSL engine log 及我自己用的括弧 ISO 修正格式五种格式的记录档,与 gzip 和 bzip2 两种压缩法。
归类记录档很耗时间。为减少占用原记录档的时间, arclog 会先把原记录档复制到暂时工作档,视需要把原记录档归零,再慢慢在暂时工作档上作业。不过仍请注意下列事项:
如果原记录档很大(好几百 MB ),光复制档案就很花时间了。这种情况下,最好先关闭记录程式,等整理完以后,再继续记录,以避免记录错乱。若平常有定期归档,记录档就不会无限制膨胀了。
若 arclog 执行到一半因故中断,会留下残存的暂时工作档。日后 arclog 执行时,碰到之前残存的暂时工作档,会停止执行。要先处理掉之前的暂时工作档,才能继续。暂时工作档只是原档的复本,只要改个档名再归档一次,就可以了。
没有特别理由,最好不要排序。排序的潜在问题如下:
记录档很大时,排序会吃掉很多记忆体。所需记忆体依归档后每个月记录笔数而定。新版的 Linux 和 MS-Windows 系统有记忆体耗用保护,会中断吃掉太多记忆体的程式,不过这还是要花好几分钟,这几分钟内系统会完全当掉不动。我不知道别的作业系统有没有记忆体耗用保护。如果你要玩,风险自负。
所有支援的记录档格式,时间最小单位为秒
。同一秒内的记录会先以记录档顺序(若同时归档好几个记录档),再以记录本身出现的次序排序。这样设计尽可能让排序归档后同一秒内的记录次序,和事件真正的发生顺序一致,但也无法完全保证。若同一秒内的事件次序很重要,你要自行小心。
归档 Syslog 记录档时,请特别注意: Syslog 记录档没有记年。 arclog 用 Date::Parse 模组解读时间。无年份时, Date::Parse 会把年份设在这个月
到去年的下个月
之间。例如,若今天是 2001-06-08 ,那年份会设在 2001-06-30 到 2000-07-01 之间。我原则上赞成这样。不过,若你的 Syslog 记录档超过一年整理归档,不要跑 arclog ,否则会死得很惨。
从标准输入读记录档,请注意下列事项:
若要读标准输入,就一定要设定归档时,档名的开头,不然不知道怎么归档后要存到哪里去。
标准输入无法删除、归零或保留部份内容。若要读标准输入,原档保留模式会自动退回成全部保留。一次读入多档时,若其中有标准输入,会一律退回全部保留,以避免混乱。
ask 模式的回答也是从标准输入读的。因为标准输入只有一个,所以从标准输入读档时,无法跑 ask 模式,会自动退回到 fail 模式。
我建议安装 File::MMagic ,尽量不要用 file 程式。 File::MMagic 内建的档案类型表好像比 file 程式准确。若不是 gzip 或 bzip2 压缩档, arclog 会把视为当成纯文字档。若压缩档被误判为图档, arclog 会当成纯文字档,直接读记录,并以错误结束。就算错误也不会弄乱原记录档,不过多少有点麻烦。
Perl 5.8.0 以上。 arclog 使用三参数的 open() 以复制档案操作,我还不知道怎么改写到更早的版本上执行。若你可以改写到更早的版本上执行,请告诉我。你可以输入 perl -v
查询你目前的 Perl 版本。如果你没有 Perl 或需要升级,可以到 Perl 网站下载安装最新版 Perl 。若你是用 MS-Windows ,可以到 ActiveState 公司下载 ActivePerl 安装。
需搭配的 Perl 模组:
这是辨识记录时间用的。若你是 ActivePerl 使用者,可以执行 ppm install Date::Parse
安装。
若没有上列 Perl 模组,请到 CPAN 程式库下载安装。
选配的 Perl 模组:
这是检查档案类型用的。若没有安装, arclog 会找 file 程式代替。若还找不到, arclog 会改用档尾(副档名)判断档案类型。这时若从标准输入读档, arclog 就无法判断了。若你是 ActivePerl 使用者,可以执行 ppm install File::MMagic
安装。 MS-Windows 使用者亦可由 GnuWin32 网站下载 file.exe 程式。请确认下载后,存档在系统的路径下,档名为 file.exe 。
建议用 File::MMagic 。 file 程式偶尔会误判。
这是处理 gzip 压缩档用的,只有在处理 gzip 压缩档才会用到。若要用时没有安装, arclog 会试著改用 gzip 程式代替。若还找不到, arclog 就无法执行。若你是 ActivePerl 使用者,可以执行 ppm install Compress::Zlib
安装。 MS-Windows 使用者亦可由 gzip 网站下载 gzip.exe。请确认下载后,存档在系统的路径下,档名为 gzip.exe 。
这是处理 bzip2 压缩档用的,只有在处理 bzip2 压缩档才会用到。若要 用时没有安装, arclog 会试著改用 bzip2 程式代替。若还找不到, arclog 就无法执行。到我写这一篇说明的时候为止, ActivePerl 的 PPM 模组库里都还没有 Compress::Bzip2 。不过 MS-Windows 的使用者还是可以由 bzip2 网站 下载 bzip2.exe 。请确认下载后,存档在系统的路径下,档名为 bzip2.exe 。
这是显示进度列用的,若没有安装,就不会显示进度列。此外不会有任何问题。进度列可以让你对 arclog 的工作进度一目了然。
若没有上列 Perl 模组,请到 CPAN 程式库下载安装。
arclog 的官方网站在:
最新版 arclog 可由下列位址下载:
依玛猫的 PGP 公钥在:
若你是由 arclog.pl 2.1.1dev4 以前的版本升级,请参阅 UPGRADE.zh-cn 档的升级说明。
arclog 用 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 安装,程序如下:
% perl Build.PL % ./Build % ./Build test % ./Build install
在 ./Build install
前,请先确认你有在安装目录存档的权限。通常这时候要切换为 root ,才能安装存档。
若要安装到其它地方,请设定好 --prefix 。例如,一般使用者,要安装在自己的目录下时:
% perl Build.PL --prefix=/home/jessica
要知道更多安装选项的细节,请参阅 Module::Build 的说明(请执行 perldoc Module::Build
)。
./arclog [参数] 记录档档名… [归档档名开头] ./arclog [-h|-v]
要整理归档的记录档档名。若要从标准输入读记录档,请设定成 -
。可同时指定许多档案。支援 gzip 或 bzip2 压缩档。
归档档名用的开头,归档后的档案会取名叫开头.yymmdd
,如:开头.200101 、开头.200102 …等。如果没有设定,会用记录档的档名当开头。若你要从标准输入读记录档,就一定要设归档档名开头。这里不能用 -
(标准输入),因为这里设定的是档名的开头,不是档名。
设定归档用的压缩法。记录大多都长得很像,压缩掉会省下非常多的空间。(不然干嘛归档? ^_*’ )目前支援下列的压缩法:
用 gzip 压缩。预设是用 gzip 压缩。 arclog 可以用 Compress::Zlib 来代替 gzip 压缩,不用呼叫外部程式,比较快比较安全。不过如果你没有装 Compress::Zlib , arclog 还是会自己改用 gzip 程式压缩。但如果连 gzip 程式都没有,却要用到 gzip 压缩,就没有办法了,无法执行。
用 bzip2 压缩。 arclog 可以用 Compress::Bzip2 来代替 bzip2 压缩,不用呼叫外部程式,比较快比较安全。不过如果你没有装 Compress::Bzip2 , arclog 还是会自己改用 bzip2 程式压缩。但如果连 bzip2 程式都没有,却要用到 bzip2 压缩,就没有办法了,无法执行。
不要压缩。(你没搞错吧? :p )
归档后不要压缩,效果和 --compress none
一样。
按记录时间先后(及记录本身顺序)排序。排序很耗记忆体和 CPU ,所以预设是不排序。请参见前面关於排序的注意事项。
不要排序(预设值)。
如果有同名的旧档,该怎么办。目前有下列模式:
盖掉旧档。旧档的记录会被删掉,请多加小心。若你的记录档是主记录档,有最完整的记录,你可以用 overwrite 。
和旧档加在一起。这有可能会演变成大混乱,请多加小心。若你想把两份不同时间的记录档加在一起,你可以用 append 。
略过所有该月的记录。这有可能造成部份记录流失,请多加小心。若你只要补充没有归档的月份,你可以用 ignore 。
结束程式,以免不小心破坏旧档。若你要用 crontab 之类的程式,全自动化执行,最好这样,以免破坏资料。因此,若标准输入不是连到键盘上,预设是 fail 。
问你该怎么办。若你是手动执行,这样最方便。因此,若标准输入是连到键盘上,预设是 ask 。答案是从标准输入读的。因为标准输入只有一个,若你要从标准输入读记录档,不能跑 ask 模式,会自动退回 fail 模式。还有,如果从标准输入读不到东西,像 crontab 里标准输入被关掉了,也会自动退回 fail 模式。
原记录档要怎么处理。目前有下列模式:
完全保留原档。
归档后,原记录档归零。
归档后,删除原记录档。
将之前月份的记录归档,保留这个月的记录,留待下个月归档。这是给 crontab 每月归档用的。因此,预设是 this-month 。
显示详细的执行过程。
没事不要吵。 :p
显示程式说明。
显示程式版本。
版权所有 © 2001-2007 依玛猫。
本程式是自由软体,您可以遵照自由软体基金会 (Free Software Foundation) 出版的 GNU 通用公共许可证条款 (GNU General Public License) 第三版来修改和重新发布这一程式,或者自由选择使用任何更新的版本。
发布这一程式的目的是希望它有用,但没有任何担保。甚至没有适合特定目的而隐含的担保。更详细的情况请参阅 GNU 通用公共许可证。
您应该已经和程式一起收到一份 GNU 通用公共许可证的副本。如果还没有,参阅<http://www.gnu.org/licenses/>。
请阅读 Changes 档,查看程式的演变、新增的功能和修补的错误。
arclog 网站架在 SourceForge 、 CPAN 与 旅舍依玛。索取最新资讯,请驾临:
在 SourceForge 上有一个 arclog 的邮件通讯 。使用上的问题、建议或错误回报,请提到通讯上讨论。它是 Mailman 的邮件通讯。若要加入,请到 arclog 邮件通讯的网页 。你也可以写信到 E-mail 指令信箱,标题填上 help ,索取 E-mail 指令说明。