繁體中文 |
简体中文 |
English
arclog.pl v1.6.0
最新消息
arclog.pl 最新版本 v1.6.0 ,可以按
这里
下载。
说明
arclog.pl 是记录档的归档程式,将指定的记录档按月份
压缩归档,以方便日后整理,节省硬碟空间,并避免记录
档被有心人士破坏。
本程式目前只能整理 apache 和
syslog 两种格式的记录档。
注意事项
-
归类记录档很花时间,档案越大,要花越多时
间。如果这时还在继续记录,双方同时写入,会破坏整个
档案。 arclog.pl 会呼叫
flock() 完全锁定档案,避免别人同时写
入。可是别人不见得会用 flock() 锁档,
尤其是 httpd 和 syslogd
这类记录程式。(其实,如果她们也用
flock() ,我们就永远锁不到档案了。)
因此,执行前,一定要先关掉记录程式,不然就把
arclog.pl 跑在没有使用中的记录档上。
-
你可以加上 --sort ,按记录时间先后(
及记录原先的顺序)排列顺序。如果记录档是好几个档案
剪贴出来的,也许排个顺序会比较好。不过排序很耗
记忆体和 CPU 。如果记录档很大,整个系统会瞬间
垮掉。我有写一些简单的预防措施,可是我不保证一
定挡得了。系统会不会垮,取决于你
CPU 多快,有多少记忆体,及记录档多大
。基于上述原因,预设不会排序。
-
若要整理 syslog 记录档,请特别注意:
syslog 记录档没有记录年份。
arclog.pl 用 Date::Parse
模组解读时间。无年份时, Date::Parse
会把年份设在「这个月」到「去年的下个月」之间。例如
,若今天是 2001-06-08 ,那年份会设在 2001-06-30 到
2000-07-01 之间。我原则上赞成这样。不过,若你的
syslog 记录档历史超过一年,不要跑
arclog.pl ,否则记录会完蛋。
-
从 1.5.0 版以后,可以用「 - 」从标准
输入读记录档。不过请注意:一、若要读标准输入,就一
定要设定归档档名的开头,不然程式不知道怎么存档。二
、若读的是档案,这个月的记录会存回原档中,以便下个
月再归档;若读的是标准输入,这个月的记录没有地方存
回去,也会被归档起来。三、
ask 模式的回答也是从标准输入读的。因
为标准输入只有一个,所以从标准输入读档时,无法跑
ask 模式,会自动退回到
fail 模式。
系统需求
-
Perl 5.005 或以上。本程式使用 File::Temp 模组,需
要 perl 5.005 以后才支援的一些新功能。
目前大多数的 UNIX 系统都有 perl 。如果你没有 perl
或需要升级,可以到
http://www.perl.com/
下载安装最新版 perl 。若你是用 MS-Windows ,可以到
http://www.activestate.com/
下载安装。
-
本程式需要下列 perl 模组:
File::Spec::Functions 、
File::Temp 、
Date::Parse 、
Compress::Zlib 。
如果你没有,可以到 CPAN 程式库
http://search.cpan.org/
下载安装。
下载
最新版 arclog.pl 可以由下列位址下载:
安装
-
解压缩:
% tar -xzf arclog.pl-x.xx.xx.tar.gz
-
以自动安装程式安装(强烈推荐)
虽然本程式不需要设定,我还是希望你跑一遍自动安装程
式。自动安装程式会检查所需的系统环境,事先告知你程
式无法执行的问题。
要跑自动安装程式,要先安装
File::Spec::Functions
模组。 perl 5.6.0 以后会随附这个模组,不用特地安装
。如果你的 perl 比较旧,没有这个模组,可以到 CPAN
程式库
http://search.cpan.org/
下载安装。
到解压缩后的目录中,执行自动安装程式 Install.PL :
% ./Install.PL
这时,安装程式会检查所需的系统环境,并问你所需的设
定。请依序回答。然后,安装程式会按你的回答,把程式
装起来。你也可以下
% ./Install.PL --help
查看有哪些选项。
-
手动安装
到解压缩后的目录中,将 arclog.pl 复制到你要存的目
录下,记得设为可执行。
% chmod +x arclog.pl
这样就可以了。
-
执行
跑跑看有没有问题。你可以下
% ./arclog.pl --help
查看有哪些选项,或下
% perldoc arclog.pl
查阅完整的程式说明。
命令列参数
./arclog.pl [参数] 记录档档名... [归档档名开头]
./arclog.pl [-h|-v]
- 记录档档名
-
要整理归档的记录档档名。若要从标准输入读记录档,请
设定成「 - 」。可同时指定许多档案。
- 归档档名开头
-
归档档名用的开头,归档后的档案会取名叫
「开头.yymmdd 」,如:开头.200101 、开头.200102 …
…等。如果没有设定,会用记录档的档名当开头。若你要
从标准输入读记录档,就一定要设归档档名开头。这里不
能用「 - 」(标准输入),因为这只是档
名的开头而已,不是档案全名。
- --compress
-
归档后压缩(预设值)。记录大多都长得很像,压缩掉会
省下非常多的空间。(不然干嘛归档? ^_*' )目前只支
援 gzip 压缩法。
- --nocompress
-
归档后不要压缩。(你没搞错吧? :p )
- --sort
-
按记录时间先后(及记录本身顺序)排序。排序很耗记忆
体和 CPU ,所以预设是不排序。请参见前面关于排序的
注意事项。
- --nosort
-
不要排序(预设值)。
- --override[=模式]
-
如果有同名的旧档,该怎么办。目前有下列模式:
- overwrite
-
盖掉旧档。如果只有设定 --override ,
没有设定模式,那会当你想要盖掉旧档。旧档的记录会被
删掉,请多加小心。若你的记录档是主记录档,有最完整
的记录,你可以用 overwrite 。
- append
-
和旧档加在一起。这有可能会造成记录大混乱,请多加小
心。若你想把两份不同时段的同种记录档剪贴在一起,你
可以用 append 。
- ignore
-
略过所有该月的记录。这有可能造成部份记录资料流失,
请多加小心。若你只要补充旧档所没有的月份,你可以用
ignore 。
- fail
-
结束程式,以免不小心破坏旧档。若你要全自动化执行,
如用 crontab 跑,最好这样,以免破坏资
料。因此,若标准输入不是终端机键盘,预设是
fail 。
- ask
-
问你该怎么办。若你是手动执行,这样最方便。因此,若
标准输入是终端机键盘,预设是 ask 。答
案是从标准输入读的。因为标准输入只有一个,若你要从
标准输入读记录档,不能跑 ask 模式,会
自动退回 fail 模式。还有,如果从标准
输入读不到东西,像 crontab 把标准输入
先关掉了,也会自动退回 fail 模式。
- -d, --debug
-
显示详细的执行过程。
- -q, --quiet
-
没事不要吵。 :p
- -h, --help
-
显示程式说明。
- -v, --version
-
显示程式版本。
版权声明
版权所有 © 2001 依玛猫。依玛猫保有所有权利。
本程式是自由软体,您可以遵照自由软体基金会( Free Software Foundation
)出版的 GNU 通用公共许可证条款( GNU General Public License )第二版
来修改和重新发布这一程式,或者自由选择使用任何更新的版本。
发布这一程式的目的是希望它有用,但没有任何担保。甚至没有适合特定目的
而隐含的担保。更详细的情况请参阅 GNU 通用公共许可证。
您应该已经和程式一起收到一份 GNU 通用公共许可证的副本。如果还没有,写
信给: Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
版本纪录
请阅读 RELEASE_NOTES 档,查看程式的演变、新增的功能和修补的错误。
依玛猫 <imacat@mail.imacat.idv.tw> 初稿 2001-06-08 ,上次更新日期 2001-06-08

本页符合 HTML 4.01 规格