Thread per SSH zwei Kommandos ausführen
(22 answers)
Opened by bianca at 2020-08-02 13:30
Hi!
Ich muss per SSH das aktuelle Verzeichnis wechseln und darin zip aufrufen. Wie geht das am einfachsten? Ich konnte weder mit Net::SSH::Perl noch mit Net::SSH2 eine Lösung finden. Entweder bleibt bis auf die vorletzte Zeile einfach alles still wie mit diesem Script: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #!/usr/bin/perl use strict; use warnings; use 5.010; system('cls'); require Net::SSH2; my $ssh2 = Net::SSH2->new(); $ssh2->connect('server .com') or $ssh2->die_with_error; $ssh2->auth_password('user','pw') or $ssh2->die_with_error; my $chan = $ssh2->channel() or $ssh2->die_with_error; $chan->exec("cd /www/verz"); $chan->exec("ls"); print while <$chan>; print "EXIT CODE: ",$chan->exit_status,"\n"; $chan->close; oder die beiden Kommandos werden nicht in der selben Instanz ausgeführt wie hier Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #!/usr/bin/perl use strict; use warnings; use 5.010; system('cls'); require Net::SSH::Perl; my %params = (protocol => 2); my $ssh = Net::SSH::Perl->new('server .com',%params); $ssh->login('user','pw'); my ($out,$err,$exit); ($out,$err,$exit) = $ssh->cmd('cd /www/verz'); say '-' x 80; say __LINE__; say "\$out = '$out'"; say "\$err = '$err'"; say "\$exit = '$exit'"; ($out,$err,$exit) = $ssh->cmd('dir'); say '-' x 80; say __LINE__; say "\$out = '$out'"; say "\$err = '$err'"; say "\$exit = '$exit'"; Net::OpenSSH scheidet wohl aus: Net::OpenSSH verbindet nicht ohne Auskunft Welche best practice Lösung gibt es da für Strawberry auf Windows? Danke 10 print "Hallo"
20 goto 10 |