SSH Befehl mit PERL - Please HELP

Hallo an alle die das lesen.

Ich hoffe es kann mir jemand ein paar Tips zu meinem Problem geben, sonst werde ich mir wohl noch eine Glatze dabei rupfen müssen :) .

Also folgendes hatte ich vor zu realisieren:

- In einem Perl script einen remote SSH Befehl mittels Net::SSH:perl absetzen.
Dieser soll dann auf dem entfernten Rechner das Netzwerkscript,
/etc/rc.d/init.d/network, neu starten.

Das ist der Codeabschnitt dafür:

use Net::SSH::perl;

cmdossh("172.16.1.89","root", "root");

sub cmdossh {

my($host, $args);

($host, $args{user}, $args{password}, $mode)=@_;

my $ssh = Net::SSH::perl->new($host);

$ssh->login($args{user},$args{password});

$ssh->cmd("/etc/rc.d/init.d/network restart");

}

Der Befehl wird auf der Remotekiste auch korrekt ausgeführt allerdings hängt danach auf meinem lokalen rechner das script weil die Verbindung unterbochen wurde.

Es ist also mein frage wie ich auf dem entfernten Rechner das Netzwerk neu starten kann und mein Script einfach weiter arbeitet egal wie das ergebniss auf dem anderem Rechner aussieht.

Insgesamt ist der Code nur ein Ausschnit aus einem Prog das es ermöglichen soll auf einem entfernten Rechner die IP Einstellungen Ändern zu können und danach auch wirksam zu machen, eben durch das neustarten des Netzwerks.

Das vollständige Script für ich als Anhang bei.

Danke im Vorraus für jegliche Hilfe.
 

Anhänge

  • netadminnew-0.1.pl.gz
    2,3 KB · Aufrufe: 51
Scheinbar wird auch das Netzwerk der ssh Verbindung mit beeinflusst.
Was passiert denn bei reload statt restart?

Andere Möglichkeit wäre auch system() zu verwenden und damit ein lokales ssh auszuführen, am besten mit keys .
 

Neue Beiträge

Zurück