コマンド ラインから Perl スクリプトを問題なく実行できますが、Windows タスク マネージャー (64 ビット Windows 2008 Server) を使用してこのタスクを自動化しようとすると、SSH/SSH2 からの出力を出力ファイルに書き込むことができません。これは perl スクリプトで、次のような処理を行います。
my $DB_FILE1=$PATH . "\\FSBusinessUtil_" . $hostfqdn . $DATE;
open( OUTFILE, ">$DB_FILE1" ) or die "Could not open data file ";
print OUTFILE "FilesystemInfo\n";
my $output1=`$SSH_PATH\\ssh $user\@$hostname NAS_DB=/nas /nas/bin/./nas_fs -list`;
if($? != $RC_OK){
open( OUT1FILE, ">$PATH\\errFSBusinessUtil_$hostfqdn$DATE");
print OUT1FILE localtime(time) . " Remote ssh failed to create $DB_FILE1. Error: $output1\n";
close OUT1FILE;
}
else {
$output1=~ s/%%%/\n/g;
print OUTFILE $output1;
}
close OUTFILE;
Perl スクリプト自体は Windows タスク スケジューラによって呼び出されましたが、出力ファイルで見たのは、ssh コマンドを呼び出す前にスクリプトが出力した "FilesystemInfo" 行だけです。それに加えて、エラーファイルが生成されたことを確認したため、コマンドは失敗しました。しかし、それでも $output1 は空なので、「リモート ssh を作成できませんでした... エラー:」だけです。