ubuntuusers.de

SFTP mit Wildcards

Status: Gelöst | Ubuntu-Version: Xubuntu 22.04 (Jammy Jellyfish)
Antworten |

schneibva

Avatar von schneibva

Anmeldungsdatum:
25. Dezember 2006

Beiträge: 514

Wohnort: Franken

Ich habe bei Hetzner ein einfaches Webhosting, kann darauf per SFTP zugreifen (mit publickey), aber nicht per SSH. sftp user@server.xxx funktioniert, aber dann muss ich mich per FTP-Befehlen weiterhangeln, z.B. per cd /abc/def und dann per get filename einzelne Dateien herunterzuladen. das geht nicht per Shellscript.

Ich suche nun eine Möglichkeit, ein Verzeichnis auf meinem lokalen Recbner mit einem Verzeichnis auf dem Hetzner-Server zu synchronisieren (nur Download von Hetzner zu mir) sodass ich z.B. Dateien nach dem Muster xyz-123* herunterlade, aber nur die Dateien, die noch nicht auf meinem lokalen Rechner sind.

Ein rsync -a -e ssh user@server.xxx:/abc/def/xyz-123* . funtioniert jedenfalls nicht. curl macht das auch nicht, kann keine Wildcards.

micneu

Avatar von micneu

Anmeldungsdatum:
19. Januar 2021

Beiträge: 798

Wohnort: Hamburg

Moin, schau dir mal cyberduck an, das nutze ich für meinen Server bei netcup.

schneibva

(Themenstarter)
Avatar von schneibva

Anmeldungsdatum:
25. Dezember 2006

Beiträge: 514

Wohnort: Franken

Cyberduck scheint es nur für Win und Mac zu geben.

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1270

... kann darauf per SFTP zugreifen (mit publickey), aber nicht per SSH
Ein rsync -a -e ssh user@server.xxx:/abc/def/xyz-123* . funtioniert jedenfalls nicht.

Na, das sieht doch nach einem Einsatz von "lftp" und dessen Fähigkeit des "mirror" aus.

Ein Zugriff über "ssh" wird seitens des Anbieters verboten, da er eventuell keinen "sshd" Prozess laufen lässt. Wie du dein Zertifikat nutzt hast du allerdings nicht genau beschrieben. Per "lftp" könnte das so gehen:

# Zugriff über Username und Passwort:
lftp -u user,passwort sftp://server.xxx
# Zugriff mit explizitem Zertifikat
lftp -u user -e "set ssl:cert-file zertifikat.ppk" sftp://server.xxx
# Zugriff mit Eintrag über .netrc
lftp sftp://user@server.xxx
# und viele andere Alternativen mehr (z.B. ~/.ssh usw)

Eine Synchronisation von gewünschten Verzeichnissen geht z.B. so:

src="/abc/def/"
dst="$HOME/test/"
lftp -e "mirror -v -p -e -n $src $dst; exit" sftp://user@server.xxx

Ein wenig Lesen in den man-pages hilft ungemein. Speziell, wenn man einige Konfigurationen (wie "set ftp:list-options -a") standardmäßig gelten lassen will.

Ein weiterer Tipp: Man kann "bookmarks" definieren, um mit weniger Tastenanschlägen zum Ziel zu kommen. Das Programm "lftp" ist sehr mächtig. Es lohnt sich also, sich ein wenig einzuarbeiten.

Eine Bitte: Wäre es möglich, die Nutzung von Fettschrift sinnvoll einzusetzen? So, wie bei deinem Post geschehen, hatte ich eigentlich keine Lust zu antworten, mich dann aber doch durchgerungen es zu tun.

schneibva

(Themenstarter)
Avatar von schneibva

Anmeldungsdatum:
25. Dezember 2006

Beiträge: 514

Wohnort: Franken

1
lftp -u user: -e "cd dir/abc; mirror -n; exit" sftp://server.xxx

hat auf Anhieb funktioniert. PERFEKT!

Danke
S.

Antworten |