Je rsync actuellement sur un hôte Linux pour copier des choses de Windows vers ma boîte Linux. Mais je ne peux pas copier des fichiers avec des noms longs.
J'ai essayé DeltaCopy , cwrsync et cygwin . D'après ce que j'ai trouvé là-bas, tous ces outils refusent de copier des fichiers lorsque la longueur du fichier devient longue, cela semble être quelque part autour de 255 caractères.
Ce problème est résolu sur les forums cwrsync ici et il devrait être résolu dans le futur à chaque sortie de cygwin 1.7 et UTF8 est pris en charge. Il y a même un build de test ici .
Je ne suis pas particulièrement à l'aise avec l'utilisation du test sur un système de production. J'espère que quelqu'un connaît une autre option rsync.
Comme alternative à rsync, connaissez-vous un autre outil que je peux copier une structure de répertoire sur Linux à partir d'un hôte Windows qui n'aura pas de problèmes avec des fichiers longs ou nommés de manière inhabituelle? Le point important est que j'ai besoin d'un outil qui peut facilement fonctionner à travers un tunnel SSH. Certains systèmes sont au-delà des pare-feu, et je crois que SSH est le tunnel que je serai autorisé à utiliser.
la source
Réponses:
Je manque peut-être le point, mais avez-vous envisagé d'utiliser Robocopy sous Windows. Il est similaire à RSync mais vous ne pouvez pas le planifier directement depuis l'application.
Ce problème peut être surmonté en écrivant un fichier de commandes pour la copie, puis en créant une tâche planifiée. Robocopy est gratuit et extrêmement robuste. Je l'utilise souvent pour copier des fichiers entre Linux et Windows en utilisant Samba et le réseau, et la capacité de reprise de Robocopy est vraiment puissante.
la source
Ah! Vous pouvez utiliser subst avec rsync.
Si vous avez une arborescence de répertoires approfondie d: \ very \ long \ file \ n \ ame \ etc \ etc, l'expérience révèle que vous pouvez remplacer X: to d: \ very \ long \ file \ name \ etc puis rsync to et depuis / cygdrive / x / peu importe. Cela fonctionne à la fois côté client et côté serveur.
Maintenant, alors que vous pouvez utiliser des substituts stratégiques pour réduire la longueur des noms de fichiers, je ne sais pas si cela vous permet de contourner la limite de 260 caractères. Cela peut également ne pas être très pratique. Ça vaut le coup d'essayer.
John Rennie.
---- 8 <----
Voir http://www.ratsauce.co.uk/notablog/LongFilenames.asp pour mes divagations sur les noms de fichiers longs.
Je ne connais aucun moyen d'obtenir le préfixe \\? \ À Cygwin, et évidemment la version actuelle de Cygwin n'utilise pas le préfixe en interne. Vraisemblablement, ils traitent de cela dans la nouvelle version et c'est pourquoi il prendra en charge les noms de plus de 260 caractères. J'utilise le Cygwin rsync partout donc comme vous j'attends avec impatience la sortie.
Il y a d'autres problèmes avec le rsync Cygwin. Il fait un gâchis d'ACL sauf si vous spécifiez cygwin = nontsec, et il a tendance à se bloquer sur de très gros répertoires. Sur ma liste de choses à faire avant de mourir est d'écrire une version Windows native de rsync qui n'aura pas ces problèmes. Je crois que cela a été fait, mais uniquement en tant que versions commerciales et non du domaine public.
JR
la source
Je vous suggère d'essayer Unison http://www.cis.upenn.edu/~bcpierce/unison/
C'est une alternative très intéressante à rsync car elle peut également fournir une synchronisation bidirectionnelle (ce que rsync n'est pas en mesure de faire). Je l'ai déjà utilisé avec succès sur 2 machines virtuelles et j'étais très satisfait des résultats.
Mais en ce qui concerne le nom de fichier long, je ne sais pas si cela fonctionne comme vous le souhaitez.
Depuis le site officiel:
la source
Juste une note que j'ai rencontré le même problème (limitations de cygwin pré-1.7) et j'ai trouvé une version fonctionnelle de cwrsync avec cygwin 1.7 ici:
http://www.doering-thomas.de/page.php?seite=1&sub=6&lang=en#rsync
(Lien original trouvé sur les forums cwrsync)
Pas exactement une version officielle, mais cela a résolu mes problèmes de jeu de caractères :)
la source
http://lists.samba.org/archive/rsync/2009-March/022955.html
http://www.okisoft.co.jp/esc/utf8-cygwin/ Possède une couche UTF8, ce qui a pour effet secondaire d'augmenter la taille de chemin possible. Selon son auteur, si vous souhaitez utiliser plus de caractères, vous pouvez augmenter la constante dans le patch. Cela semble encore plus hackeux.
Ce n'est probablement pas votre meilleur pari pour la synchronisation à distance, mais c'est une synchronisation Windows qui prétend prendre en charge des noms de fichiers plus longs.
la source
Donc, si les outils sont mauvais sur Windows, existe-t-il un moyen d'utiliser l'outil Linux?
Avec ssh - sshfs ?
Sans ssh - utiliser un VPN et monter en tant que SMB?
Dans les deux cas, vous pouvez utiliser le client Linux rsync plus performant contre un système de fichiers. Je ne l'ai pas fait avec 10 Go de données, donc YMMV. :)
la source
Cela ne fera pas de grandes structures de fichiers, mais pour des ensembles de données relativement petits avec des noms longs, vous pouvez envisager d'utiliser quelque chose comme 7-Zip pour créer une archive que rsync pourrait ensuite transférer. Vous avez dit que vous devez extraire des données des serveurs Windows vers un serveur Linux. Si vous avez accès au shell, archivez les données dont vous avez besoin dans un conteneur (7-zip), transférez le conteneur et développez-le lorsqu'il arrive sur le serveur. Cela pousse le problème du nom de fichier long sur l'archiveur, pour lequel je pense qu'il existe un meilleur support et des outils non Cygwin.
la source
Afin de ne pas perdre la portabilité, je vous recommande de rester avec rsync et d'essayer de résoudre la limitation 255. Cette limitation n'est plus à l'intérieur de Windows et est dans le code RSYNC - en fait, la limite sur Windows est d'environ 2048 maintenant (si je me souviens bien).
Je suis sûr qu'il n'y a pas d'autres ports rsync que ceux spécifiés par vous et je vous suggère d'utiliser la version de test et de signaler les bogues que vous pourriez trouver.
Si cela ne vous dérange pas d'utiliser FTP, vous pouvez essayer LFTP - il a une très bonne fonction de mise en miroir mais il n'est pas comparable à rsync en matière de sauvegarde / synchronisation.
la source
J'ai piraté un script qui peut temporairement renommer des fichiers ou des répertoires avec des noms plus courts afin que rsync (et d'autres programmes) puissent continuer. Vous pouvez l'utiliser dans le cadre de la chaîne d'outils que vous utilisez pour copier des fichiers de Linux vers Windows (rsync ou autre). Je ne sais pas ce que vous entendez par "inhabituel", alors peut-être que cela ne répond qu'à une partie de vos besoins. Veuillez me faire savoir si cela vous est utile.
la source