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:
- Keine Benachrichtigungen. Dateien landen im Ordner - du weißt es erst, wenn du selbst nachschaust.
- Scheitert lautlos. Ändert sich das Passwort, zieht der Server um oder gibt es ein Netzwerkproblem, schlägt das Skript still fehl. Du merkst es erst, wenn jemand fragt, warum Dateien nicht ankamen.
- Keine Oberfläche. Debuggen bedeutet Logdateien lesen. Statusprüfung bedeutet Befehle tippen.
- Wartungsaufwand. macOS-Updates brechen gelegentlich Cron- oder launchd-Konfigurationen. Zugangsdaten müssen in Klartext-Skripten oder Credential-Dateien aktualisiert werden.
- Keine Fehlerbehandlung. Ein abgebrochener Download oder ein Server-Timeout erzeugt einen Eintrag in der Logdatei - falls du sie liest.
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:
- FTPull installieren und aus dem Programme-Ordner öffnen. Es erscheint ein Symbol in der Menüleiste.
- Einstellungen öffnen und eine neue Verbindung hinzufügen: Hostname, Port, Benutzername, Passwort, Protokoll (FTP/SFTP/FTPS).
- Den Remote-Ordnerpfad festlegen - das Verzeichnis auf dem Server, das du überwachen möchtest.
- Einen lokalen Ordner festlegen - wohin heruntergeladene Dateien auf deinem Mac kommen sollen.
- Das Polling-Intervall einstellen - wie oft FTPull den Server prüft. Jede Minute für reaktionsschnelle Überwachung; alle 5 Minuten für geringere Netzwerkauslastung.
- 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:
- Neue Dateien - Dateien, die beim vorherigen Poll noch nicht vorhanden waren
- Geänderte Dateien (optional) - Dateien, deren Größe oder Änderungsdatum sich verändert hat
- Unterordner - FTPull kann Unterordner rekursiv überwachen, sodass du keine separate Verbindung für jeden Unterordner brauchst
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:
- Die Datei erhält einen roten Finder-Tag - im Download-Ordner sofort sichtbar, ohne die App öffnen zu müssen
- Eine Fehlerbenachrichtigung wird über das macOS-Benachrichtigungszentrum gesendet
- Der Fehler wird in FTPulls Protokollansicht mit dem genauen Fehlergrund erfasst
- Die Datei wird beim nächsten Polling-Zyklus erneut versucht
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.