nysus has asked for the wisdom of the Perl Monks concerning the following question:
I've spend a few hours on this with not much to show for it. Hopefully someone out there with better knowledge of Net::OpenSSH internals can help. This is really bizarre. The bit of code I'm having problems with is here:
# this line runs fine $server->exec("sudo rm -r /directory/*"); # exec is wrapper for the Ne +t::OpenSSH "system" method # checks if directory exists. This line causes Net::OpenSSH to crap ou +t in special circumstances. my $value = $server->capture(qq#perl -e "print (-d '/directory/')"#); # returns 1 because dir exists print $value;
Now, if I run the same commands above in a standalone environment outside of the script I'm having the problem with, it works as expected and I cannot reproduce. The problem only happens when I run the commands from a particular script I'm running and only when /directory is empty. If the directory has stuff in it, I have no issues at all. What's also extremely weird is if I put something like this: $server->exec("ls") after the sudo rm -r /directory/* line, the code chugs along whether /directory is empty or not. I'm at a loss as to what could be going on. I've tried printing the $server->ssh->error but the code craps out before I can read it.
If someone could point me in the right direction as to what is going on, I'd be extremely grateful. This is driving me nuts.
$PM = "Perl Monk's";
$MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate";
$nysus = $PM . ' ' . $MCF;
Click here if you love Perl Monks
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Net::OpenSSH failing in unexpected way
by haukex (Archbishop) on Apr 04, 2017 at 14:17 UTC | |
by nysus (Parson) on Apr 04, 2017 at 17:23 UTC | |
|
Re: Net::OpenSSH failing in unexpected way
by Wiggins (Hermit) on Apr 04, 2017 at 15:41 UTC | |
|
Re: Net::OpenSSH failing in unexpected way
by Anonymous Monk on Apr 04, 2017 at 15:53 UTC |