zip 命令在内存使用率较高时失败

zip 命令在内存使用率较高时失败

我们有几个 Perl 脚本,可以生成报告并通过电子邮件发送。通过电子邮件发送文件的脚本需要.zip扩展名。报告脚本生成一个.txt.xls文件,然后运行以下zip命令:

print `zip -m $zip_filename $output_filename`;

发生的情况是,在某些情况下(通常是当 perl 脚本使用大量内存时),上述命令会失败。根据我收集的信息,脚本失败,因为没有足够的内存来运行该zip命令。这是一个偶发问题,而且有点难以确定。

我必须生成.zip文件并且无法使用不同的压缩方法。

我希望有人能告诉我这里发生了什么事。我怀疑旗帜-m可能会造成这种情况。

对我来说奇怪的是,我已经多次手动运行该zip命令bash,并且从未失败过,即使使用大量内存也是如此。

这是一个命令的结果free,可以让您了解我所说的内存量。报告脚本有时会使用超过 10GB 的内存:

-bash-4.1$ free
             total       used       free     shared    buffers     cached
Mem:      49409336   48948192     461144          0    1184716    8147564
-/+ buffers/cache:   39615912    9793424
Swap:      2047992    2047988          4

$output_filename可以是匹配多个文件的模式。

相关内容