abhimanyu
abhimanyu

Reputation: 197

restart apache server by ssh command in perl php

I am trying to restart the Apache server through ssh command in perl - php.

Below is code I tried. It works through PuTTY. Though if I run through browser it does not run at line : $output = $ssh->exec("systemctl status apache2");

use Net::SSH::Expect;
my $ssh = Net::SSH::Expect->new (
            host => "xx.xx.xx.xx", 
            password=> 'adsd#21', 
            user => 'root', 
            raw_pty => 1
        );
print("\n");
my $output = $ssh->login();
print($output);
if ($output !~ /Welcome/) {
    die "Login has failed. Login output was $login_output";
}


$output = $ssh->exec("systemctl status apache2");

The Error:

"WARNING: terminal is not fully functional"

Upvotes: 1

Views: 553

Answers (1)

user7818749
user7818749

Reputation:

Though Net::SSH is an elegant module, I would suggest using the system tools available to you by default.

You have ssh available and using ssh-keys are more secure, especially due to the fact that you currently display passwords in a script. If you are unsure of how to setup ssh-keys, let me know and I will add it to the answer.

Effectively your entire script can purely be:

use strict;
use warnings;

my $apache_status = `ssh username\@servername systemctl status apache2`;
   print $apache_status;

Upvotes: 1

Related Questions