別のサーバーからいくつかのログファイル(txt形式)をフェッチし、Perlスクリプトを使用してそれらを解析しようとしています。ログが正しくフェッチされた後、ログディレクトリのアクセス許可を777に設定しました。
この後、Perlスクリプトを使用して、解析用にログファイルを1つずつ開こうとします。さて、奇妙なことと起こる問題は、私のスクリプトがファイルを開くことができる場合とできない場合があります。簡単に言うと、ログファイルを開いて解析できない場合があります。
また、私はこのperlスクリプトをcronしました。以前はどちらの場合も正常に実行されていましたが、手動ではなくcronを介して実行すると、ファイルを開くことが失敗する可能性が高くなります。問題がどこにあるのかわかりません。
これが私がファイルを開くために使用するコードです、
$inputDir = "/path/to/dir";
@inputFiles = <$inputDir/*>;
# inputFiles array is list of files in the log directory
foreach my $logFile(@inputFiles)
{
# just to ensure file name is text
$logFile = $logFile."";
# process file only if filename contains "NOK"
if(index($logFile,"NOK") > -1)
{
# opens the file
open($ifile, '<', $logFile) or die "Error: Unable to open file for processing.";
# file parsing takes place
}
}
close($ifile);
このコードは正常に実行され、その一部を変更していないことを繰り返します。ただし、ログファイルを開くことができない場合があるため、毎回必ず実行されるわけではありません。何か案は?