Я могу запустить сценарий 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, но в выходном файле я увидел только строку «FilesystemInfo», которую сценарий распечатывает перед вызовом команды ssh. Кроме того, команда не удалась, потому что я видел сгенерированный файл ошибки. Но тем не менее, $ output1 пуст, поэтому ничего, кроме «Удаленный ssh не удалось создать... Ошибка:».