Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11383[/thread]

SCP/SFTP Datei von Fremdsystem holen

Leser: 3


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Gast Gast
 2008-02-29 08:53
#106487 #106487
Ich muss per SCP/SFTP eine Datei von einer anderen Maschine abholen.
Gibt es dazu eine Anleitung ?

Was ist, wenn die Datei z.Zt. "in use" ist ?
Das System, wo die Datei geholt wird, ist VMS.
Kann man so etwas abfangen ?
Es sollte dann nochmals probiert werden, die Datei zu holen, vielleicht nach 2 Minuten ... jedenfalls so lange, bis die Datei hier ist.
Auch das muss überprüft werden.
Gibt es dazu einen Lösungsansatz ?
renee
 2008-02-29 09:35
#106488 #106488
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Für FTP gibt es das Modul CPAN:Net::FTP und für SFTP gibt es CPAN:Net::SFTP.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-02-29 11:55
#106492 #106492
Ich habe es mal damit versucht:
Code (perl): (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl
use Net::FTP;
$ftp = Net::FTP->new("mein.host.com");  # Hier Deinen Host eingeben
die "Konnte keine Verbindung aufbauen $!" unless $ftp;
$ftp->login("username", "password");    # Hier Benutzername und Password eingeben
$ftp->cwd("/pub");                      # cwd: Verzeichnis wechseln
$ftp->get("dummy.html");
$ftp->quit;


Könnte ja laufen, müsste nur das Modul Net::FTP durch Net::SFTP ersetzen ?

Einzig, die Wiederholung, wenn es nicht klappt, bzw. Logfile schreiben, bei Fehler ... puuhhh ...
Da tue ich mir schwer ...
skirnir
 2008-02-29 12:49
#106496 #106496
User since
2006-05-09
29 Artikel
BenutzerIn
[default_avatar]
Was verstehtst du unter "klappt nicht"?
Wenn das "get" schief geht, bekommst du ein undef als Ergebnis.
Wenn du merken willst, wenn die Datei auf dem Server nicht dieselbe ist wie die, die du runtergeladen hast, würde ich für beide einen MD5-hash generieren und die beiden hashes vergleichen.
Schau dir dazu vielleicht mal CPAN:Net::SSH und CPAN:Digest::MD5 an.
renee
 2008-02-29 13:04
#106498 #106498
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
skirnir+2008-02-29 11:49:37--
Wenn du merken willst, wenn die Datei auf dem Server nicht dieselbe ist wie die, die du runtergeladen hast, würde ich für beide einen MD5-hash generieren und die beiden hashes vergleichen.


Vorsicht, wenn man Dateien im ASCII-Modus hin- und herschiebt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-02-29 13:18
#106499 #106499
Oh je - stimmt, genau es ist ASCII ...

sollte man vielleicht noch ein gzip dazu einbauen ?
renee
 2008-02-29 13:26
#106500 #106500
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Man kann die Dateien ja auch im Binär-Modus hin- und herschieben (auch wenn es "eigentlich" simple Textdateien sind)...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-02-29 14:20
#106503 #106503
So habe nochmals gespielt ...

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
27
28
#!/usr/bin/perl

use warnings;
use strict;

use Net::SFTP;

my %args = (
                user        => 'login',
                password    => 'password',
                debug       => 0
            );

my $tag = `/bin/date +"%s"`;
chomp($tag);

my $datum = `/usr/bin/expr $tag / 86400`;
chomp($datum);

my $sftp = Net::SFTP->new("IP-ADRESSE hier eintragen", %args);

my $remote = "/entferntes-verzeichnis/datei.asc". $datum .".tar.gz";
my $local  = "/locales-verzeichnis/datei.asc" .  $datum .".tar.gz";
$sftp->get($remote, $local);



print "fertig\n";
nepos
 2008-02-29 15:38
#106509 #106509
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
renee+2008-02-29 12:26:21--
Man kann die Dateien ja auch im Binär-Modus hin- und herschieben (auch wenn es "eigentlich" simple Textdateien sind)...

SFTP kennt da keinen Unterschied. Das überträgt die Dateien immer im Binärmodus.
renee
 2008-02-29 15:43
#106510 #106510
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
nepos+2008-02-29 14:38:06--
renee+2008-02-29 12:26:21--
Man kann die Dateien ja auch im Binär-Modus hin- und herschieben (auch wenn es "eigentlich" simple Textdateien sind)...

SFTP kennt da keinen Unterschied. Das überträgt die Dateien immer im Binärmodus.


Danke, wieder was gelernt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2008-02-29 08:53.