Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;) (https://www.delphipraxis.net/210470-grosse-dateien-vergleichen-schnell-sicher-und-einfach-%3B.html)

gee21 29. Apr 2022 12:00

AW: Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;)
 
Zitat:

Es geht also darum, eine Alarmanlage einzubauen, die im Normalfall und im Idealfall nie einen Alarm auslösen muss, da der Zustand, der von ihr überprüft wird, im Regelbetrieb nicht vorkommen kann / darf.
Ja genau :thumb:

himitsu 29. Apr 2022 13:28

AW: Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;)
 
NAS ...

Warum SMB?

via SSH, da kann die Berechnung des HASH auf der anderen Seite erfolgen, also für die Berechnung muß die Datei nicht erst übertragen werden, sondern nur noch der kleine HASH.


rsync sollte das darüber auch schneller/sparsamer sein

gee21 29. Apr 2022 14:00

AW: Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;)
 
Zitat:

Zitat von himitsu (Beitrag 1505262)
NAS ...

Warum SMB?

via SSH, da kann die Berechnung des HASH auf der anderen Seite erfolgen, also für die Berechnung muß die Datei nicht erst übertragen werden, sondern nur noch der kleine HASH.


rsync sollte das darüber auch schneller/sparsamer sein


Ohh ich wusste nicht das man über SSH den HASH direkt so auslesen kann... Danke :thumb:
Ich nutze SMB weil es einfach geht in kombination mit Delphi und es sowieso bereits auf allen Windows Rechnern eingerichtet (zB Netzlaufwerk T: oder S: etc).

Damit ich in Windows eine SSH Verbindung mache konnte habe ich bis jetzt immer Putty verwendet. Ich nehme mal an ich müsste also in Delphi eine SSH verbindung aufbauen anstatt auf die Netzlaufwerke zuzugreifen. Man kann nicht ein Netzlaufwerk einrichten das dann über SSH läuft anstelle von SMB, oder doch?

Hab gesehen es gibt folgende Komponente, Würde es theoretisch mit dieser gehen?

https://torry.net/pages.php?id=1578
TGPuttyLib v.1

(ich denke aber es ist eh zu hoch für mich).

himitsu 29. Apr 2022 14:09

AW: Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;)
 
Einfach auslesen nicht direkt (OK, einige Dateisysteme speichern optional auch direkt einen Hash, den man lesen könnte, z.B. Btrfs),
aber da wird das Hash-Berechnunsprogramm ja einfach auf dem anderen Rechner (NAS) ausgeführt, ohne die Datei erst runterladen zu müssen, und dessen Ausgabe (der Hash), kommt dann ganz schnell über Leitung zurück.


Ich weiß jetzt nicht ob wirklich rsync oder eines der anderen Programmchen, aber ich glaube rsync konnte die Dateien Blockweise hashen und nur den Hash bergleichen, anstatt jedes Byte einzeln, womit es dann schneller geht, wenn jeweils die Hashs auf den Seiten berechnet werden, auf welchen die Dateien liegen.


SSH ist ja erstmal nur die Console/Terminal ... Dateilisten und -übertragung machen dann Programme.
z.B. FTPS vs. SFTP ... das Eine ist FTP durch seinen SSL/TSL Tunnel, das Andere sieht wie FTP aus, aber es öffnet intern quasi ein Terminal, wo es dann entsprechende Befehle ausfürt.


Es selber machen (hashs berechnen lassen, vergleichen und dann die Datei übertragen oder nicht) ist wohl nicht nötig.
SCP oder RSYNC kannst du ja einfach aus Delphi heraus aufrufen.

jobo 29. Apr 2022 14:21

AW: Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;)
 
Zitat:

Zitat von gee21 (Beitrag 1505256)

Betreffend RSYNC:
Ja es ist eben alleine mit RSYNC / FTPSync nicht möglich aus meiner Sicht. (Kann auch sein das ich was falsch überlege)

Entweder Synchronisiert RSYNC. = problem bei fake backups synchronisiert er dann einfach auch mit.

rsync hat eine checksum Option. File Date wird in dem Falle ignoriert, außerdem hat es einen Dry Run Schalter.

gee21 29. Apr 2022 14:44

AW: Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;)
 
OK alles klar.

Ich bedanke mich rechtherzlich bei allen :thumb:
Hab wieder mal viel gelernt und denke dass ich mit all diesen Informationen eine Lösung finde.

Redeemer 29. Apr 2022 15:07

AW: Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;)
 
Warum vergleicht man nicht das CRC32, das bereits in den ZIP-Dateien steht, zusammen mit der Dateigröße? Das sollte hinreichend genau sein.

dummzeuch 29. Apr 2022 17:26

AW: Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;)
 
Zitat:

Zitat von himitsu (Beitrag 1505264)
Ich weiß jetzt nicht ob wirklich rsync oder eines der anderen Programmchen, aber ich glaube rsync konnte die Dateien Blockweise hashen und nur den Hash bergleichen, anstatt jedes Byte einzeln, womit es dann schneller geht, wenn jeweils die Hashs auf den Seiten berechnet werden, auf welchen die Dateien liegen.

Standardmäßig verwendet rsync zum Vergleich den Timestamp der Dateien, um festzustellen, ob sie kopiert werden muss. Erst beim Kopieren versucht es blockweise zu kopieren und Prüfsummen zu übertragen, um Bandbreite zu sparen. Es gibt aber eine Option (--checksum wenn ich mich recht erinnere), bei der der initiale Vergleich anhand einer Prüsumme geschieht. Das ist dann allerdings um Größenordnungen langsamer.

rsync selbst kann der Fragesteller allerdings gar nicht einsetzen, außer um eine Datei ggf. lokal zu kopieren, was vielleicht schneller ist als der Zugriff via SMB.

Es ist jedoch wirklich ein gutes Beispiel, wie man es machen könnte, vorausgesetzt, man kann auf dem Server (NAS) Programme via ssh ausführen.

dummzeuch 29. Apr 2022 17:28

AW: Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;)
 
Zitat:

Zitat von Redeemer (Beitrag 1505268)
Warum vergleicht man nicht das CRC32, das bereits in den ZIP-Dateien steht, zusammen mit der Dateigröße? Das sollte hinreichend genau sein.

Das setzt voraus, dass die Prüfsumme in der Datei nicht manipuliert ist. Aber manipulierte Dateinen scheinen ja eines der möglichen Probleme zu sein.

jobo 30. Apr 2022 13:56

AW: Grosse Dateien vergleichen. Schnell, Sicher und Einfach ;)
 
Zitat:

Zitat von dummzeuch (Beitrag 1505272)

rsync selbst kann der Fragesteller allerdings gar nicht einsetzen, außer um eine Datei ggf. lokal zu kopieren, was vielleicht schneller ist als der Zugriff via SMB.

Es ist jedoch wirklich ein gutes Beispiel, wie man es machen könnte, vorausgesetzt, man kann auf dem Server (NAS) Programme via ssh ausführen.

Warum kann man (hier) kein rsync einsetzen?

Es ist m.E. nicht nur ein gutes Beispiel, es ist auch fraglich, ob unter der ausgegebenen Herangehensweise etwas schnell, sicher und einfach neu entsteht, was es seit Jahrzehnten bewährt gibt.

Ein NAS, das kein SSH kann, wäre natürlich hinderlich, aber nicht nur für rsync. Ideal würde ein solches Programm natürlich dort laufen, wo die Dateien landen. Aber dort sind sie ja nicht festgetackert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz