毎日いくつかのジョブの一部として実行する次のコード スニペットがあります。
system("cp $keyFile $destinationFile");
system("chown $userID $destinationFile");
system("chmod 400 $destinationFile");
上記のコードの問題は、ごくまれに、上記の操作の少なくとも 1 つが正常に完了せず、ジョブが失敗する場合があることです。上記の操作のいずれかが失敗した場合にジョブが失敗しても問題ありませんが、単純なシステム コマンドのいずれかが失敗することは避けたいと考えています。
したがって、次のオプションがあります。
- システム コマンドの代わりにPerl サブルーチン
File::Copy::copy
、chmod
を使用します。chown
system()
コマンドの戻り値を確認してください。これは私が行ったことですが、なぜ失敗するのか説明していません。
システム コマンドの代わりに Perl サブルーチンを使用する方が安全です。私のジョブは常にRHEL5マシンで実行されます [Windows ではありません]。
ここで他にできることはありますか。何がうまくいかなかったのかについて、より多くの情報を収集するにはどうすればよいですか?
更新: ファイル名またはファイル パスには、スペースや奇妙な文字が含まれることはありません。[a-zA-Z]のセットになります。