I'm working on a script to ssh to a list of servers, execute a command, capture the output, then close the connection. The problem is that if there is a server on the list that is no longer available (ie gives 'connection closed by foreign host' immediately) the script bombs with the following error:
SSHProcessError The ssh process was terminated. at line xxx
This occurs on any reference to the $ssh object. Here are the commands that I'm running:
my $ssh = Net::SSH::Expect->new (
host => "$current_server",
user => "$user",
raw_pty => 1
);
# test the login
eval {
$login_output = $ssh->run_ssh();
};
# I've tried to capture $@ or $! here but it never gives me an
+ything useful
($ssh->read_all(2) =~ />\s*|$\s*\z/) or die "where's the remot
+e prompt?";
$ssh->exec("stty raw -echo");
It will die on the first command after the run_ssh, no matter what it is, and I can't seem to trap the fact that the connection was broken immediately. I've tried using peek to search for 'connection closed' or the like, but still unsuccessful.
I've heard one alternative is to use Net::SSH::Perl, however this is for my company and since we use ::Expect, they refuse to install the ::Perl module as well. Does anyone have any suggestions on how I should proceed?
Thanks!
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.