Das Ziel ist klar: du willst wissen, wenn neue Dateien auf einem entfernten FTP-Server erscheinen, und etwas damit tun - sie herunterladen, verarbeiten, einen weiteren Workflow auslösen. Das Problem: FTP-Server senden keine Benachrichtigungen. Sie warten einfach. Du musst selbst fragen.

Es gibt zwei Wege, das zu lösen. Der erste erfordert Terminal, Shell-Scripting-Kenntnisse und die Bereitschaft, dass Dinge lautlos schiefgehen. Der zweite braucht nichts davon.

Der mühsame Weg: Shell-Skripte und Cron

Fragt man einen Systemadministrator, wie man einen FTP-Ordner überwacht, lautet die erste Antwort meistens eine Variante von lftp - einem Kommandozeilen-FTP-Client - kombiniert mit einem Cron-Job oder einem launchd-Agent, der es zeitgesteuert ausführt.

Das typische Setup sieht so aus. Zuerst ein Shell-Skript schreiben, das lftp nutzt, um den Remote-Ordner in einen lokalen zu spiegeln:

#!/bin/bash
# ftp-herunterladen.sh
lftp -u benutzername,passwort ftp.example.com << EOF
mirror --only-newer --no-recursion /remote/ordner /Users/du/Downloads/ftp-watch/
quit
EOF

Dann mit einem Cron-Eintrag (crontab -e) alle fünf Minuten ausführen:

# FTP-Sync alle 5 Minuten ausführen
*/5 * * * * /Users/du/skripte/ftp-herunterladen.sh >> /tmp/ftp-sync.log 2>&1

Das funktioniert. Wenn alles korrekt eingerichtet ist und korrekt bleibt, prüft es den Server alle fünf Minuten und lädt Neues herunter.

Aber dieser Ansatz hat echte Schwächen:

Für jemanden, der sich im Terminal zuhause fühlt und Code gegenüber grafischen Tools bevorzugt, mag das akzeptabel sein. Für alle anderen - und für Workflows, wo Zuverlässigkeit und Rückmeldung wichtig sind - ist es das falsche Werkzeug.

Der einfache Weg: FTPull

FTPull ist eine macOS-App, die entfernte FTP-Ordner überwacht und neue Dateien automatisch herunterlädt. Sie ist eine grafische Oberfläche um dasselbe Grundkonzept - periodisches Polling des Servers - aber mit allen Problemen des Skript-Ansatzes gelöst.

So startest du die Überwachung eines FTP-Ordners:

  1. FTPull installieren und aus dem Programme-Ordner öffnen. Es erscheint ein Symbol in der Menüleiste.
  2. Einstellungen öffnen und eine neue Verbindung hinzufügen: Hostname, Port, Benutzername, Passwort, Protokoll (FTP/SFTP/FTPS).
  3. Den Remote-Ordnerpfad festlegen - das Verzeichnis auf dem Server, das du überwachen möchtest.
  4. Einen lokalen Ordner festlegen - wohin heruntergeladene Dateien auf deinem Mac kommen sollen.
  5. Das Polling-Intervall einstellen - wie oft FTPull den Server prüft. Jede Minute für reaktionsschnelle Überwachung; alle 5 Minuten für geringere Netzwerkauslastung.
  6. Die Verbindung aktivieren. FTPull beginnt sofort mit dem Polling.

Das war die Einrichtung. Von jetzt an erledigt FTPull alles automatisch. Wenn eine neue Datei auf dem Server erscheint, erkennt FTPull sie beim nächsten Poll, lädt sie herunter und sendet eine macOS-Benachrichtigung.

Was FTPull überwacht

FTPull verfolgt den Zustand des Remote-Ordners, indem es die aktuelle Dateiliste mit der des vorherigen Polls vergleicht. Alles Neue wird heruntergeladen. Im Einzelnen:

Dateiendungsfilter

Wenn du nur bestimmte Dateitypen benötigst - zum Beispiel .csv-Dateien aus einem Datenfeed oder .pdf-Dateien aus einem Verarbeitungssystem - richte einen Filter ein. FTPull überspringt dann alles andere stillschweigend. Nützlich, wenn der Remote-Ordner auch Dateitypen enthält, die du nicht benötigst.

Mehrere Ordner, mehrere Server

Ein praktischer Vorteil gegenüber Shell-Skripten ist die Verwaltung mehrerer Verbindungen. Fünf verschiedene FTP-Server überwachen - einen Kundenserver, einen internen Server, den Feed eines Lieferanten und zwei regionale Varianten? Fünf Verbindungen in FTPull anlegen. Sie alle laufen unabhängig voneinander unter einem einzigen Menüleisten-Symbol, jede mit eigenem Polling-Intervall und eigenen Einstellungen.

Mit Cron wäre das je ein eigenes Skript, ein eigener Cron-Eintrag und eine eigene Logdatei, die niemand liest.

Zeitplanung

FTPull enthält eine Zeitplanfunktion, die die Überwachung auf bestimmte Stunden und Tage beschränkt. Wenn Dateien ausschließlich während der Geschäftszeiten ankommen - von einem System, das 9 bis 17 Uhr läuft - gibt es keinen Grund, samstags um 3 Uhr morgens zu pollen. Zeitplan einstellen (z. B. 8–20 Uhr, Montag bis Freitag) und FTPull pausiert außerhalb automatisch.

Das reduziert auch unnötigen Netzwerkverkehr und Serverlast - besonders relevant bei Servern mit strengen Ratenlimits oder Verbindungskontingenten.

Wenn etwas schiefläuft

Hier unterscheidet sich FTPull am deutlichsten vom Skript-Ansatz. Schlägt ein Download fehl:

Zum Vergleich beim Cron-Skript: Fehler wird an eine Logdatei angehängt, die wahrscheinlich niemand liest, sonst passiert nichts, die Datei wird erst heruntergeladen, wenn jemand bemerkt, dass sie fehlt.

Skripte brauchen ständige Pflege

Shell-Skripte und Cron-Jobs haben keine Oberfläche, keine Benachrichtigungen und keine Fehlerwiederherstellung. Eine Passwortänderung, ein Serverumzug oder ein Netzwerkproblem lassen sie lautlos scheitern - und du weißt es erst, wenn jemand fragt, warum die Dateien nie ankamen.

FTPull übernimmt das alles für dich. Einmal konfigurieren, und es läuft dauerhaft ruhig im Hintergrund - mit vollständigem Feedback, wenn deine Aufmerksamkeit gefragt ist.