보고서를 생성하고 이메일을 통해 보낼 수 있는 여러 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
여러 파일과 일치하는 패턴일 수 있습니다.