2016-04-18 3 views
1

Das mag zu viel von einem bereits sehr leistungsfähigen Werkzeug verlangen, aber gibt es eine Chance, dass lftp mirror einen Befehl während des Spiegelungsprozesses ausführen kann (vom entfernten Verzeichnis zum lokalen Rechner)?Kann lftp einen Befehl für die heruntergeladenen Dateien ausführen (als Teil des Spiegelungsprozesses)?

Konkretes Beispiel: lftp wird gebeten, mit xml Dateien in einem lokalen Ordner und sobald ein Remote-Verzeichnis zu spiegeln, da jede Datei heruntergeladen wird/aktualisiert, es konvertiert die Datei in JSON-Format xml2json.

Ich kann mir eine Lösung vorstellen, die darauf angewiesen ist, die lokale Kopie des gespiegelten Ordners für Änderungen über find zu überwachen und dann xml2json über die neuen/aktualisierten Dateien auszuführen, aber vielleicht gibt es einen einfacheren Weg?

+0

Wenn Sie * auf * Ihre lokale Maschine spiegeln, können Sie wahrscheinlich den 'source -e'-Befehl * verwenden, nachdem * das FTP beendet ist, um eine Art' suchen ... | auszuführen xargs xml2json ... '. Wenn Sie * von * Ihrem lokalen Computer zu einem Remote-Computer spiegeln, vermute ich, dass Sie nichts tun können. LFTP ist ein sehr leistungsfähiges Werkzeug, aber es ist im Wesentlichen darauf beschränkt, was FTP tun kann und die Ausführung beliebiger Befehle auf dem entfernten Rechner gehört nicht dazu. http://lftp.yar.ru/. Aber ich denke, das ist alles in Ihrer Frage impliziert, und Sie wollen es parallel tun, und es ist nicht möglich. – Mort

+0

Danke, ich habe die Frage aktualisiert! Ich spiegle vom entfernten zum lokalen Verzeichnis ... es ist ein sehr großer Spiegel (2+ Millionen kleine Dateien), deshalb möchte ich die Datenverarbeitung beschleunigen (zumindest beim ersten Durchlauf). – econ

+0

Wenn 'lftp' einen temporären Namen verwendet, während die Datei noch unvollständig ist, könnten Sie einfach einen separaten Prozess haben, der nach neuen' xml'-Dateien ohne eine entsprechende 'json'-Begleitdatei sucht. Vielleicht check out 'inotify'. – tripleee

Antwort

2

Sie können mit xfer: verify und xfer: verify-command settings einen lokalen Befehl für jede übertragene Datei ausführen.

Verwandte Themen