Zum Hauptinhalt springen

LabV SFTP Transfer

Der LabV SFTP Transfer ist ein kleines Server-Tool, das Verzeichnisse überwacht und neue Dateien automatisch an einen konfigurierten SFTP-Server überträgt.
Damit können Labordaten, Messdateien oder andere strukturierte Daten automatisiert in LabV importiert werden – ohne manuelle Uploads.

Diese Seite beschreibt Installation, Konfiguration und Betrieb.


1. Funktionsüberblick

Der LabV SFTP Transfer:

  • überwacht ein oder mehrere lokale Verzeichnisse,
  • filtert Dateien anhand definierter Dateimuster,
  • überträgt passende Dateien per SFTP an einen Zielserver (z. B. LabV-Importserver),
  • archiviert oder löscht Dateien nach erfolgreichem Upload,
  • schreibt Logdateien für Nachvollziehbarkeit und Fehleranalyse,
  • kann einmalig, regelmäßig (Cronjob) oder als Dienst ausgeführt werden.

Der Prozess ist nach der Einrichtung vollständig automatisiert und benötigt keine weitere Interaktion.


2. Installation & Voraussetzungen

2.1 Unterstützte Systeme

  • Linux (empfohlen für produktiven Einsatz)
  • macOS
  • Windows (z. B. über geplante Tasks und Batch-Skripte)

2.2 Technische Voraussetzungen

  • Installierte Java Runtime (Version entsprechend Projektdokumentation)
  • Lesezugriff auf die überwachten Verzeichnisse
  • Schreibrechte im Log-Verzeichnis

2.3 Download

Die jeweils aktuelle Version des Tools steht über GitHub zur Verfügung:

  • Repository: LabV-io/labv-sftp-transfer
  • Bereich: Releases

Dort wird in der Regel eine ausführbare JAR-Datei bereitgestellt, z. B.:

labv-sftp-transfer.jar

Diese Datei wird zusammen mit einer Konfigurationsdatei (config.yaml) auf dem Zielsystem abgelegt.


3. Konfiguration (config.yaml)

Der LabV SFTP Transfer wird vollständig über eine YAML-Konfigurationsdatei gesteuert.
Typischerweise liegt diese im Unterordner config/.

3.1 Beispielkonfiguration

# Interval in seconds for scanning
intervalSeconds: 300

# Logging configuration
log:
directory: "./log"
enableFileLogging: true
retentionDays: 14

# Folder definitions
folders:
- path: "\\fileserver01\eingangsdaten"
pattern:
- "*.xlsx"
- "*.csv"
postAction: archive
archiveDir: "archive"

# SFTP server configuration
sftp:
host: 18.197.118.68
port: 22
username: "labv-transfer"
privateKeyPath: "/home/labv/.ssh/id_rsa"
remoteDir: "/uploads"

# Eines von beiden:
knownHostsPath: "config/known_hosts"
# trustedHostPublicKey: ""

Hinweis:
Bei Windows-UNC-Pfaden müssen Backslashes im YAML doppelt escaped werden (\\server\share).


3.2 Allgemeine Einstellungen

intervalSeconds

Gibt an, in welchem Zeitabstand Verzeichnisse gescannt werden:

  • Beispiel: 300 → alle 5 Minuten

3.3 Logging

Der Block log steuert das Verhalten der Logausgaben:

  • directory: Zielverzeichnis für Logdateien
  • enableFileLogging:
    • true → Logausgaben zusätzlich in eine Datei schreiben
    • false → nur Konsolenausgabe
  • retentionDays: Anzahl Tage, nach denen alte Logdateien automatisch gelöscht werden

Typisches Logdatei-Schema:

log/20250107-labv-sftp-transfer.log

3.4 Verzeichnisüberwachung (folders)

Unter folders werden alle zu überwachenden Verzeichnisse aufgeführt.
Jeder Eintrag hat mindestens:

  • path: Überwachter Ordner (lokal oder UNC)
  • pattern: Liste mit Dateimustern (z. B. *.csv)
  • postAction: Verhalten nach erfolgreichem Upload
  • archiveDir: Zielordner bei Archivierung

Beispiel:

folders:
- path: "/data/labv/incoming"
pattern:
- "*.csv"
- "*.xml"
postAction: archive
archiveDir: "archive"

Mögliche Werte für postAction:

  • archive → Datei wird nach erfolgreichem Upload in archiveDir verschoben
  • delete → Datei wird nach erfolgreichem Upload gelöscht

3.5 SFTP-Konfiguration (sftp)

Der Block sftp definiert die Verbindung zum Zielserver:

  • host: DNS-Name oder IP-Adresse des SFTP-Servers
  • port: Port des SFTP-Dienstes (typisch 22)
  • username: Benutzername für die Anmeldung
  • privateKeyPath: Pfad zum privaten SSH-Schlüssel
  • remoteDir: Verzeichnis auf dem SFTP-Server, in das Dateien hochgeladen werden

Sicherheitseinstellungen:

  • knownHostsPath: Pfad zu einer known_hosts-Datei zur Host-Key-Verifikation
    oder
  • trustedHostPublicKey: Alternativ kann der Public Key des Hosts direkt eingetragen werden

4. Start des Programms

4.1 Manuelle Ausführung

java -jar labv-sftp-transfer.jar --config=config/config.yaml

4.2 Startskript unter Linux

#!/bin/bash
cd /opt/labv-sftp-transfer
/usr/bin/java -jar labv-sftp-transfer.jar --config=config/config.yaml

4.3 Batch-Datei unter Windows

cd C:\labv\sftp-transfer
java -jar labv-sftp-transfer.jar --config=config\config.yaml

5. Fehleranalyse & Logging

Logdateien befinden sich im konfigurierten Verzeichnis, z. B.:

./log/20250107-labv-sftp-transfer.log

9. Zusammenfassung

Der LabV SFTP Transfer ermöglicht einen stabilen, automatischen Dateitransfer zu LabV.
Nach der Einrichtung läuft der Prozess vollständig automatisiert und zuverlässig im Hintergrund.