長いファイル名をサポートするWindows rsync、または適切な代替手段


13

現在、Linuxホストでrsyncを実行して、WindowsからLinuxボックスにコピーします。しかし、長い名前のファイルをコピーすることはできません。

DeltaCopycwrsynccygwinを試しました。私がそこから発見したことから、これらのツールはすべて、ファイルの長さが長くなるとファイルのコピーを拒否します。これは約255文字のようです。

この問題は、ここのcwrsyncフォーラム対処されており、cygwin 1.7がリリースされ、UTF8がサポートされるたびに、将来修正される可能性があります。ここにテストビルドさえあります

実稼働システムでテストビルドを使用するのは特に不安です。私は誰かが別のrsyncオプションを知っていることを望んでいます。

rsyncの代わりに、WindowsホストからLinuxのディレクトリ構造をコピーできる別のツールを知っていますか?重要なことは、SSHトンネルを簡単に通過できるツールが必要なことです。一部のシステムはファイアウォールの向こう側にあり、SSHは私が使用を許可されるトンネルだと思います。


参考までに、cwrsyncは長いファイル名をサポートするcygwin 1.7に基づくアップデートをリリースしました! itefix.no/i2/node/12070
Zoredache

回答:


6

私はその点を見逃しているかもしれませんが、WindowsでRobocopyを使用することを検討しました。RSyncと似ていますが、アプリケーションから直接スケジュールすることはできません。

これは、コピー用のバッチファイルを作成し、スケジュールされたタスクを作成することで解決できます。Robocopyは無料で非常に堅牢です。Sambaとネットワークを使用してLinuxとWindowsの間でファイルをコピーするためによく使用します。Robocopyの再開機能は非常に強力です。


robocopyは私が検討していたオプションですが、間違った方向(winからlinにプッシュ)で動作するため、LinuxのWindowsからプルしたかったのです。もっと良いものを見つけることができない場合、私はこの方向に行かなければならないかもしれないと思う。
ゾレダチェ09

5

あぁ!rsyncでsubstを使用できます。

深いディレクトリツリーd:\ very \ long \ file \ n \ ame \ etc \ etcがある場合、実験により、X:をd:\ very \ long \ file \ name \ etcに置き換えてから、 / cygdrive / x / whateverから。これは、クライアント側とサーバー側の両方で機能します。

今、戦略的なサブステーションを使用してファイル名の長さを減らすことができますが、260文字の制限をバイパスできるかどうかはわかりません。また、あまり便利ではないかもしれません。試してみる価値があります。

ジョン・レニー。

---- 8 <----

長いファイル名でのとりとめのないことについては、http: //www.ratsauce.co.uk/notablog/LongFilenames.aspを参照してください

Cygwinの\\?\プレフィックスを取得する方法がわかりません。Cygwinの現在のバージョンでは、プレフィックスを内部的に使用していません。おそらく彼らは新しいバージョンでこれに対処しているので、260文字を超える名前をサポートするのはこのためです。私はあちこちでCygwin rsyncを使用しているので、あなたのようにリリースを待ち望んでいます。

Cygwin rsyncには他にもいくつかの問題があります。cygwin = nontsecを指定しない限り、ACLは大量に作成され、非常に大きなディレクトリでハングする傾向があります。私が死ぬ前にすべきことのリストにあるのは、これらの問題を持たないネイティブWindowsバージョンのrsyncを書くことです。これは行われたと思いますが、パブリックドメインではなく商用バージョンとしてのみです。

JR


Rsyncはすべてのファイルを最初に読み取る必要があるため、大きなディレクトリでハングするようです。問題は、Windowsが最初にすべてのファイルを読み取り、次にrsyncが起動することです。ファイルの数によっては、ディレクトリのスキャンに数分かかることがあります。
ライアン2009

これは、rsync 3.0ではもはや当てはまりません。ファイルの送信をすぐに開始できるように、増分ファイルリストを送信するようになりました。
ジェームズ・スニーリンガー09

2

Unison http://www.cis.upenn.edu/~bcpierce/unison/を試してみることをお勧めします

双方向の同期も提供できるため、rsyncの非常に興味深い代替手段です(rsyncはできません)。2台の仮想マシンで既に正常に使用しており、結果には非常に満足しています。

しかし、長いファイル名に関する限り、あなたが望むように機能するかどうかはわかりません。

公式ウェブサイトから:

Unisonは、UnixおよびWindows用のファイル同期ツールです。ファイルとディレクトリのコレクションの2つのレプリカを異なるホスト(または同じホスト上の異なるディスク)に保存し、別々に変更してから、各レプリカの変更を他のレプリカに伝播して最新の状態にすることができます。


250文字より長いパスで使用しましたか?Windows上でそれを取得する唯一の方法はcygwin経由であるように見えますが、これはcygwin rsyncとまったく同じ問題があることを意味すると考えています。
ゾレダチェ09

長いパスはテストしていませんが、Windows用のUnisonバイナリはcygwin.dllを使用してビルドされます(バイナリにバンドルされているため、cygwinをインストールする必要はありません)。それを試してください:)
オリビエジャケメット2009

2

同じ問題(1.7より前のcygwinの制限)に遭遇し、cygwin 1.7で動作するcwrsyncのビルドがここにあることに注意してください:

http://www.doering-thomas.de/page.php?seite=1&sub=6&lang=en#rsync

(cwrsyncフォーラムから見つかった元のリンク)

正式なビルドではありませんが、文字セットの問題は解決しました:)


1

http://lists.samba.org/archive/rsync/2009-March/022955.html

http://www.okisoft.co.jp/esc/utf8-cygwin/ UTF8層があります。これには、可能なパスサイズが大きくなるという副作用があります。その著者によると、より多くの文字を使用したい場合は、パッチの定数を上げることができます。それはさらにハックのようです。

おそらくリモート同期の最善策ではありませんが、より長いファイル名をサポートすると主張するWindows rsyncです。


この投稿は少し心配です(cygwin.com/ml/cygwin/2006-05/msg00068.html)-「基本的に、930行のパッチがあります。そのほとんどは新しいものです。FWICSは、Unicodeのすべての場所をカバーしていない可能性があります変換が必要な場合があります(特に、
テキストモード

0

それでは、Windowsでツールが悪い場合、Linuxツールを使用する方法はありますか?

ssh- sshfsで

SSHなしで-VPNを使用してSMBとしてマウントしますか?

どちらの方法でも、ファイルシステムに対してより高性能なLinux rsyncクライアントを使用できます。10GBのデータでこれを行っていないので、YMMVです。:)


WindowsからLinuxボックスにファイルをプルしようとしています。さらに、毎週同期したい大量の10GB以上のデータを話しているため、アーカイブを作成したくありません。アーカイブを作成した場合、増分更新の利点は得られません。
ゾレダチェ09年

OK、修正された答え。
コーフランド2009年

0

これは大きなファイル構造を行いませんが、長い名前の比較的小さなデータセットの場合、7-Zipのようなものを使用して、rsyncが転送できるアーカイブを作成することを検討できます。WindowsサーバーからLinuxサーバーにデータをプルする必要があると言いました。シェルアクセスがある場合は、必要なデータをコンテナーにアーカイブし(7-zip)、コンテナーを転送し、サーバーに到達したら展開します。これにより、長いファイル名の問題がアーカイバにプッシュされます。これには、より良いサポートと非Cygwinツールがあると思います。


0

移植性を失わないために、rsyncを使用して255の制限を解決することをお勧めします。この制限はWindows内ではなく、RSYNCコード内にあります-実際、Windowsの制限は現在2048前後です(よく覚えていれば)。

私が指定したもの以外のrsyncポートはないことを確信しています。テストバージョンを使用し、見つかったバグを報告することをお勧めします。

FTPの使用を気にしない場合は、LFTPを試すことができます。ミラーリング機能は非常に優れていますが、バックアップ/同期に関してはrsyncとは比較できません。


0

rsync(および他のプログラム)が続行できるように、一時的に短い名前のファイルまたはディレクトリの名前を変更できるスクリプト一緒ハッキングしました。LinuxからWindowsにファイルをコピーするために使用しているツールチェーンの一部としてこれを使用できます(rsyncまたはそれ以外)。「異常」とはどういう意味かわかりませんので、おそらくこれはあなたの要件の一部にしか対応していません。あなたに役立つかどうか教えてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.