Dateiabgleich über langsame Verbindung - nur geänderte Dateien übertragen
Hallo zusammen,
ich habe folgende Problemstellung und wollte mich schlau machen, wie ich das Ganze am besten angehe
Ich muß öfters Dokumente auf den Servern von Kunden aktualisieren. Diese setzen eine Software von uns ein (in PHP programmiert), dazu haben die Kunden einige hundert PDF-Dateien, welche teil der Software sind und regelmäßig aktualisiert werden müssen.
Bei einem Update der PDF-Dateien wird jeweils die alte PDF Datei mit einer neuen Version überschrieben, d.h. die Dateinamen bleiben dieselben.
Normalerweise könnte ich jetzt die ganzen PDF-Dateien (d.h. den kompletten Ordner) mit einer neuen Version überschreiben, somit liegen ja alle PDFs in der jeweilig neuesten Fassung vor. Das Problem ist nur, daß dies
a) händisch geschieht, ich hätte es gerne vollständig automatisiert gescriptet
b) dadurch die Datenmenge sehr groß ist, teilweise wird nach Datenvolumen abgerechnet, daher möchte ich nur die geänderten Dateien übertragen
Die für mich ideale Vorgehensweise wäre diese:
1. Ich starte auf dem Kundenserver ein Tool (das kann eine Batch-Datei, ein Kommandozeilentool oder ein PHP Programm sein), welches mir die aktuell vorhandenen Dateien in eine Datei oder Datenbank schreibt, mit Größe, Änderungsdatum und idealerweise mit einer Prüfsumme
2. ich übertrage die Datei und führe bei mir ein weiteres Tool aus, weches diese Datei mit meinem Datenbestand abgleicht und nur die geänderten bzw. neu hinzugekommenen PDF Dokumente in ein ZIP-Archiv packt
3. ich übertrage das ZIP mit den Änderungen wieder zurück zum Kunden
4. ein weiteres Tool sorgt dann dafür, daß die Dateien vom ZIP auf dem Kundenserver entpackt werden
Wie löse ich dieses Problem am besten vollautomatisiert? Habt Ihr Vorschläge für mich? Das Problem ist, es besteht nicht die ganze Zeit über eine Verbindung (VPN) zum Kundenserver, sondern eben nur, wenn ich ein Update einspiele.
Vorab herzlichen Dank für Eure Anregungen
ich habe folgende Problemstellung und wollte mich schlau machen, wie ich das Ganze am besten angehe
Ich muß öfters Dokumente auf den Servern von Kunden aktualisieren. Diese setzen eine Software von uns ein (in PHP programmiert), dazu haben die Kunden einige hundert PDF-Dateien, welche teil der Software sind und regelmäßig aktualisiert werden müssen.
Bei einem Update der PDF-Dateien wird jeweils die alte PDF Datei mit einer neuen Version überschrieben, d.h. die Dateinamen bleiben dieselben.
Normalerweise könnte ich jetzt die ganzen PDF-Dateien (d.h. den kompletten Ordner) mit einer neuen Version überschreiben, somit liegen ja alle PDFs in der jeweilig neuesten Fassung vor. Das Problem ist nur, daß dies
a) händisch geschieht, ich hätte es gerne vollständig automatisiert gescriptet
b) dadurch die Datenmenge sehr groß ist, teilweise wird nach Datenvolumen abgerechnet, daher möchte ich nur die geänderten Dateien übertragen
Die für mich ideale Vorgehensweise wäre diese:
1. Ich starte auf dem Kundenserver ein Tool (das kann eine Batch-Datei, ein Kommandozeilentool oder ein PHP Programm sein), welches mir die aktuell vorhandenen Dateien in eine Datei oder Datenbank schreibt, mit Größe, Änderungsdatum und idealerweise mit einer Prüfsumme
2. ich übertrage die Datei und führe bei mir ein weiteres Tool aus, weches diese Datei mit meinem Datenbestand abgleicht und nur die geänderten bzw. neu hinzugekommenen PDF Dokumente in ein ZIP-Archiv packt
3. ich übertrage das ZIP mit den Änderungen wieder zurück zum Kunden
4. ein weiteres Tool sorgt dann dafür, daß die Dateien vom ZIP auf dem Kundenserver entpackt werden
Wie löse ich dieses Problem am besten vollautomatisiert? Habt Ihr Vorschläge für mich? Das Problem ist, es besteht nicht die ganze Zeit über eine Verbindung (VPN) zum Kundenserver, sondern eben nur, wenn ich ein Update einspiele.
Vorab herzlichen Dank für Eure Anregungen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 158054
Url: https://administrator.de/contentid/158054
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
moin,
Im Prinzip hört sich dass doch so an, als ob Ihr einen Datenbestand der PDFfe bei euch habt und Ihr auch die Masterupdates derselben - ergo braucht Ihr doch keine Abfrage, welche Dateien in welcher Version auf dem Kundenserver sind, denn die kommen ja ursprünglich von euch.
Ich würde alles auf einem System machen - Abfrage des Datenbestands und Abgleich mit aktuellem sowie den upload zum Ziel.
Gruß
- Gegenfrage(n)
- schonmal im Forum nach ftp batch/script gesucht?
- Warum soll der Job "geteilt" werden?
- wer pflegt die PDF Dateien - ausschliesslich Ihr oder auch der Kunde?
Im Prinzip hört sich dass doch so an, als ob Ihr einen Datenbestand der PDFfe bei euch habt und Ihr auch die Masterupdates derselben - ergo braucht Ihr doch keine Abfrage, welche Dateien in welcher Version auf dem Kundenserver sind, denn die kommen ja ursprünglich von euch.
- btw: Pdffe zippen bringt zu 95% kaum den von Euch erwarteten Erfolg der Dateigrößenminimierung - im Gegenteil das erzeugt nur unnötig Last.
Ich würde alles auf einem System machen - Abfrage des Datenbestands und Abgleich mit aktuellem sowie den upload zum Ziel.
Gruß
Salü,
ziemlich abstrakt - ich versuchs mal abstrakt zu beschreiben und vermute es geht erstmal nur um Funktionierende Wege - nicht um die Details derselben (fertige Scripte)
Gruß
ziemlich abstrakt - ich versuchs mal abstrakt zu beschreiben und vermute es geht erstmal nur um Funktionierende Wege - nicht um die Details derselben (fertige Scripte)
- alle Änderungen kommen von dir - ergo hast du vor dem upload der neuesten Änderungen ja den Stand der vorherigen. (Stichwort versionierung)
- Wenn das mit dem Datenvolumen so problematisch ist - bau eine Iso und brenn die Daten
- Andernfalls RDP bietet auch die Funktion "lokale Datenträger" auf dem Ziel zu verbinden. So hättest du gleichzeitig auf q & z Zugriff.
- Wenn es nicht so ist - dann baue ein Script in einer deiner Lieblingssprachen, dass regelmäßig per Cron/AT Job den Datenbestand ausliesst und eine MD5 oder banaler Dateidatum in eine Liste schreibt und die an Euch gemailt wird.
- 7Zip kann man Kommandozeilenbasiert anweisen "irgendwas" zusammen zu einem Zip zu fassen.
- Auf den Zielmaschinen kann ein weiteres Script laufen (so löse ich das auf jeden Fall) - dass es regelmäßig überprüft, ob eine bestimmte CD im Laufwerk liegt - dort überprüft, ob diese bereits verarbeitet wurde und wenn das nicht der Fall ist zu reagieren - Daten ins Ziel entzippen und was sonst noch nötig ist.
Gruß