Guten Tag!
Ich möchte gern auf einem Linux Host per SSH das Verzeichnis wechseln und dann mittels zip ein Archiv erstellen. Grund: mit zip ein Archiv mit -r zu erstellen, das alle Unterverzeichnisse relativ enthält ist es nötig, in das oberste zu wechseln, weil das immer vom "current directory" ausgeht. Ansonsten hat man alles darüber auch mit drin.
Mit
Net::SSH::Perl klappt das eine ODER das andere Kommando. Aber nicht beide. Scheint nicht für Hin- und Rückkommunikation gemacht zu sein, wie man das in PuTTY hat. Daher zu
Net::OpenSSH gewechselt und dieses Script gebaut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use strict;
use warnings;
use 5.010;
system('cls');
say "bin in Zeile ".__LINE__;
use Net::OpenSSH;
$Net::OpenSSH::debug = ~0;
say "bin in Zeile ".__LINE__;
my $ssh = Net::OpenSSH->new('host .com',
user => 'user',
password => 'pw'
);
say "bin in Zeile ".__LINE__;
$ssh->error and die "Couldn't establish SSH connection: ".$ssh->error;
say "bin in Zeile ".__LINE__;
my ($out,$err) = $ssh->capture2({timeout => 5},"cd /www/verz") or die "remote command failed: ".$ssh->error;
print "THE OUT IS $out\nTHE ERROR IS $err\n";
say "bin in Zeile ".__LINE__;
Ausgabe:
bin in Zeile 8
bin in Zeile 11
# open_ex: ['ssh','-V']
# io3 mloop, cin: 0, cout: 1, cerr: 0
# io3 fast, cin: 0, cout: 1, cerr: 0
Ich bitte um Hilfe, was das sein soll und wie ich das Script zur Arbeit bewegen kann. Oder gern auch mit jedem anderen Modul.
Strawberry Perl v5.30.2, win10,
Net::OpenSSH 0.79
Fehler an den Zugangsdaten können ausgeschlossen werden. Funktionieren in PuTTY,
Net::SSH::Perl,
Net::SSH2::Channel und
Net::OpenSSH.
Danke
Last edited: 2020-08-02 13:08:19 +0200 (CEST)
10 print "Hallo"
20 goto 10