Ich synchronisiere derzeit auf einem Linux-Host, um Dinge von Windows auf meine Linux-Box zu kopieren. Ich kann jedoch keine Dateien mit langen Namen kopieren.
Ich habe DeltaCopy , cwrsync und cygwin ausprobiert . Von dem, was ich dort gefunden habe, lehnen alle diese Tools das Kopieren von Dateien ab, wenn die Länge der Datei lang wird. Dies scheint irgendwo bei 255 Zeichen zu liegen.
Dieses Problem wird in den cwrsync-Foren hier behoben und möglicherweise irgendwann in der Zukunft behoben, wenn Cygwin 1.7 herauskommt und UTF8 unterstützt wird. Es gibt sogar einen Test Build hier .
Ich bin mit dem Test, der auf einem Produktionssystem aufbaut, nicht besonders vertraut. Ich hoffe, jemand kennt eine andere rsync-Option.
Kennen Sie als Alternative zu rsync ein anderes Tool, mit dem ich eine Verzeichnisstruktur unter Linux von einem Windows-Host kopieren kann, der keine Probleme mit langen oder ungewöhnlich benannten Dateien hat? Wichtig ist, dass ich ein Tool benötige, das problemlos in einem SSH-Tunnel funktioniert. Einige der Systeme sind jenseits von Firewalls, und ich glaube, SSH ist der Tunnel, den ich verwenden darf.
quelle
Antworten:
Ich kann den Punkt verfehlen, aber haben Sie erwogen, Robocopy auf Windows zu verwenden. Es ähnelt RSync, Sie können es jedoch nicht direkt in der Anwendung planen.
Dies kann überwunden werden, indem eine Batchdatei für die Kopie geschrieben und anschließend eine geplante Aufgabe erstellt wird. Robocopy ist kostenlos und äußerst robust. Ich benutze es oft, um Dateien zwischen Linux und Windows mit Samba und dem Netzwerk zu kopieren, und die Wiederaufnahmefähigkeit von Robocopy ist wirklich mächtig.
quelle
Aha! Sie können subst mit rsync verwenden.
Wenn Sie einen tiefen Verzeichnisbaum haben, d: \ very \ long \ file \ n \ ame \ etc \ etc, zeigt das Experiment, dass Sie subst X: to d: \ very \ long \ file \ name \ etc und dann rsync to and aus / cygdrive / x / was auch immer. Dies funktioniert sowohl auf der Client-Seite als auch auf der Server-Seite.
Jetzt, wo Sie strategische Substitutionen verwenden können, um die Länge der Dateinamen zu verringern, weiß ich nicht, ob Sie dadurch die Beschränkung auf 260 Zeichen umgehen können. Es kann auch nicht sehr praktisch sein. Einen Versuch wert.
John Rennie.
---- 8 <----
Siehe http://www.ratsauce.co.uk/notablog/LongFilenames.asp für meine Streifzüge über lange Dateinamen.
Ich kenne keine Möglichkeit, das Präfix \\? \ Für Cygwin abzurufen, und offensichtlich verwendet die aktuelle Version von Cygwin das Präfix intern nicht. Vermutlich wird dies in der neuen Version behoben, weshalb Namen mit mehr als 260 Zeichen unterstützt werden. Ich verwende den Cygwin-Rsync überall, so dass ich gespannt auf die Veröffentlichung bin.
Es gibt einige andere Probleme mit dem Cygwin-Rsync. Wenn Sie nicht cygwin = nontsec angeben, werden die ACLs durcheinander gebracht, und es besteht die Tendenz, dass sehr große Verzeichnisse hängen bleiben. Auf meiner Liste der Dinge, die zu tun sind, bevor ich sterbe, steht, eine native Windows-Version von rsync zu schreiben, die diese Probleme nicht aufweist. Ich glaube, dies wurde getan, aber nur als kommerzielle Versionen, nicht als gemeinfreie.
JR
quelle
Ich würde vorschlagen, dass Sie versuchen, Unison http://www.cis.upenn.edu/~bcpierce/unison/
Es ist eine sehr interessante Alternative zu rsync, da es auch bidirektionale Synchronisation bietet (was rsync nicht kann). Ich habe es bereits erfolgreich auf 2 virtuellen Maschinen eingesetzt und war mit den Ergebnissen sehr zufrieden.
Aber was den Dateinamen betrifft, weiß ich nicht, ob es so funktioniert, wie Sie es möchten.
Von der offiziellen Website:
quelle
Nur eine Anmerkung, dass ich auf dasselbe Problem stoße (Einschränkungen von Cygwin vor 1.7) und hier einen funktionierenden Build von Cwrsync mit Cygwin 1.7 gefunden habe:
http://www.doering-thomas.de/page.php?seite=1&sub=6&lang=de#rsync
(Ursprünglicher Link aus den cwrsync-Foren gefunden)
Nicht gerade ein offizieller Build, aber er hat meine Probleme mit dem Zeichensatz gelöst :)
quelle
http://lists.samba.org/archive/rsync/2009-March/022955.html
http://www.okisoft.co.jp/esc/utf8-cygwin/ Verfügt über eine UTF8-Ebene, die als Nebeneffekt die mögliche Pfadgröße erhöht. Wenn Sie mehr Zeichen verwenden möchten, können Sie laut Autor die Konstante im Patch erhöhen. Das scheint noch hackischer.
Wahrscheinlich nicht die beste Wahl für die Remote-Synchronisierung, aber eine Windows-Synchronisierung, die angeblich längere Dateinamen unterstützt.
quelle
Also, wenn die Tools unter Windows schlecht sind, gibt es eine Möglichkeit, das Linux-Tool zu verwenden?
Mit ssh - sshfs ?
Ohne ssh - VPN nutzen und als SMB mounten?
In beiden Fällen können Sie den leistungsfähigeren Linux-rsync-Client für ein Dateisystem verwenden. Ich habe das nicht mit 10 GB Daten gemacht, also YMMV. :)
quelle
Hiermit werden keine großen Dateistrukturen erstellt, aber für relativ kleine Datensätze mit langen Namen können Sie beispielsweise 7-Zip verwenden, um ein Archiv zu erstellen, das dann von rsync übertragen werden kann. Sie sagten, dass Sie Daten von Windows-Servern auf einen Linux-Server ziehen müssen. Wenn Sie Shell-Zugriff haben, archivieren Sie die benötigten Daten in einem Container (7-zip), übertragen Sie den Container und erweitern Sie ihn, wenn er auf den Server gelangt. Dadurch wird das Problem mit langen Dateinamen auf den Archivierer übertragen, für den es meines Erachtens bessere Unterstützung und Tools gibt, die nicht von Cygwin stammen.
quelle
Um die Portabilität nicht zu verlieren, empfehle ich Ihnen, bei rsync zu bleiben und zu versuchen, die 255-Beschränkung zu lösen. Diese Einschränkung gilt nicht mehr für Windows und ist im RSYNC-Code enthalten. Tatsächlich liegt die Beschränkung für Windows derzeit bei 2048 (wenn ich mich recht erinnere).
Ich bin mir ziemlich sicher, dass es keine anderen Rsync-Ports als die von Ihnen angegebenen gibt, und ich empfehle Ihnen, die Testversion zu verwenden und alle Fehler zu melden, die Sie möglicherweise finden.
Wenn es Ihnen nichts ausmacht, FTP zu verwenden, können Sie es mit LFTP versuchen. Es verfügt zwar über eine sehr gute Spiegelungsfunktion, ist aber in Bezug auf Sicherung / Synchronisierung nicht mit rsync vergleichbar.
quelle
Ich habe ein Skript gehackt , das vorübergehend Dateien oder Verzeichnisse mit kürzeren Namen umbenennen kann, damit rsync (und andere Programme) fortfahren können. Sie können dies als Teil der Toolkette verwenden, mit der Sie Dateien von Linux nach Windows kopieren (rsync oder auf andere Weise). Ich weiß nicht, was Sie unter "ungewöhnlich" verstehen. Vielleicht wird hier nur ein Teil Ihrer Anforderungen angesprochen. Bitte lassen Sie mich wissen, ob es für Sie hilfreich ist.
quelle