レポートを生成して電子メールで送信できる複数の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
複数のファイルに一致するパターンにすることができます。