В следующем коде я пытаюсь передать ssh на другой компьютер и проверить, существует ли этот файл или нет.
Если файл существует, тогда мне нужно проверить, является ли человек, обращающийся к файлу, создателем этого файла, то есть его имя пользователя находится в файле журнала.
Если присутствует, тогда мне нужно удалить этот файл. Как я могу добиться этого с одного входа т.е., пользователь будет вводить свой пароль только один разОперации Perl ssh за один сеанс
$user = $ENV{USER};
$il_check_cmd = "cat $shared_il_path/$il_name/info/.info_cat.log";
my $ssh_delete = Net::SSH::Perl->new($hostname, protocol => '1,2', debug => 0, interactive => 1) ;
$ssh_delete->login($username, $password);
($stdout,$stderr,$exit) = $ssh_delete->cmd("$il_check_cmd");
if((defined $stderr) && ($stderr =~ /No such file or directory/))
{
print "-E- $RUNCMD: \"$il_name\" you have entered does not exist in \"$shared_il_path\"!! !\n";
print "-E- $RUNCMD: or\n";
print "-E- $RUNCMD: \"$il_name\" does not contain \".info_cat.log\" file!!!\n";
print "-E- $RUNCMD: Exiting...\n";
exit;
}
@content = split(/ /,$stdout);
chomp($user_e = shift(@content));
if($user_e =~ /\b$user\b/)
{
print "This is the user who created the file";
//then remove the $shared_il_path/$il_name/info/.info_cat.log
}
Могу ли я получить статус возврата или некоторый статус для команд, которые выполняются в сеансе SSH? – Rajeev
Вы имеете в виду код выхода, который вы размещаете в '$ exit'? ('exit (0)' является значением по умолчанию. Он будет отличным от нуля, если ваш код умирает. Вы также можете вызвать 'exit (1)' on error.) Вы также можете «распечатать» сообщения, которые попадут в ' $ stdout'. – ikegami
Как вызвать exit (1) в случае какой-либо ошибки.can u указать пример? – Rajeev