Saat ini saya rsync pada host Linux untuk menyalin sesuatu dari Windows ke kotak Linux saya. Tapi saya tidak bisa menyalin file dengan nama panjang.
Saya sudah mencoba DeltaCopy , cwrsync , dan cygwin . Dari apa yang saya temukan di sana semua alat ini menolak untuk menyalin file ketika panjang file menjadi panjang, ini sepertinya berada di sekitar 255 karakter.
Masalah ini diatasi di forum-forum cwrsync di sini dan itu seharusnya diperbaiki di masa mendatang kapan saja cygwin 1.7 keluar dan UTF8 didukung. Bahkan ada test build di sini .
Saya tidak terlalu nyaman menggunakan test build pada sistem produksi. Saya berharap ada yang tahu opsi rsync lain.
Sebagai alternatif untuk rsync, apakah Anda tahu alat lain yang bisa saya salin struktur direktori di Linux dari host windows yang tidak akan memiliki masalah dengan file yang panjang atau tidak bernama? Bit penting adalah bahwa saya membutuhkan alat yang dapat dengan mudah bekerja di terowongan SSH. Beberapa sistem berada di luar firewall, dan saya percaya SSH adalah terowongan yang akan saya gunakan.
sumber
Jawaban:
Saya mungkin kehilangan intinya tetapi apakah Anda mempertimbangkan menggunakan Robocopy pada Windows. Ini mirip dengan RSync namun Anda tidak dapat menjadwalkannya dari aplikasi secara langsung.
Ini dapat diatasi dengan menulis file batch untuk salinan dan kemudian membuat Tugas Terjadwal. Robocopy gratis dan sangat kuat. Saya sering menggunakannya untuk menyalin file antara Linux dan Windows menggunakan Samba dan jaringan, dan kemampuan melanjutkan Robocopy sangat kuat.
sumber
Aha! Anda dapat menggunakan subt dengan rsync.
Jika Anda memiliki pohon direktori yang dalam d: \ very \ long \ file \ n \ ame \ etc \ etc maka percobaan mengungkapkan bahwa Anda dapat mengganti X: ke d: \ very \ long \ file \ name \ etc lalu rsync ke dan dari / cygdrive / x / terserahlah. Ini berfungsi baik di ujung klien dan di ujung server.
Sekarang sementara Anda dapat menggunakan subst strategis untuk mengurangi panjang nama file, saya tidak tahu apakah ini memungkinkan Anda untuk memotong batas 260 karakter. Mungkin juga tidak nyaman. Layak dicoba.
John Rennie.
---- 8 <----
Lihat http://www.ratsauce.co.uk/notablog/LongFilenames.asp untuk ocehan saya tentang nama file panjang.
Saya tidak tahu cara untuk mendapatkan awalan \\? \ Ke Cygwin, dan jelas versi Cygwin saat ini tidak menggunakan awalan secara internal. Agaknya mereka menyikapi ini dalam versi baru dan itulah mengapa itu akan mendukung nama lebih dari 260 karakter. Saya menggunakan Cygwin rsync di semua tempat jadi seperti Anda, saya dengan sabar menunggu rilis.
Ada beberapa masalah lain dengan rsync Cygwin. Itu membuat ACL berantakan kecuali Anda menentukan cygwin = nontsec, dan cenderung bertahan pada direktori yang sangat besar. Dalam daftar hal yang harus saya lakukan sebelum saya mati adalah menulis rsync versi Windows asli yang tidak akan memiliki masalah ini. Saya percaya ini telah dilakukan, tetapi hanya sebagai versi komersial bukan yang domain publik.
JR
sumber
Saya sarankan Anda mencoba Unison http://www.cis.upenn.edu/~bcpierce/unison/
Ini adalah alternatif yang sangat menarik untuk rsync karena ia juga dapat memberikan sinkronisasi dua arah (yang tidak dapat dilakukan rsync). Saya sudah berhasil menggunakannya di 2 mesin virtual dan sangat senang dengan hasilnya.
Tapi sejauh menyangkut nama file, saya tidak tahu apakah itu berfungsi seperti yang Anda inginkan.
Dari situs web resmi:
sumber
Hanya sebuah catatan bahwa saya mengalami masalah yang sama (keterbatasan pre-1.7 cygwin) dan menemukan cwrsync yang berfungsi dengan cygwin 1.7 di sini:
http://www.doering-thomas.de/page.php?seite=1&sub=6&lang=en#rsync
(Tautan asli ditemukan dari forum cwrsync)
Bukan bangunan resmi, tapi itu memecahkan masalah charset saya :)
sumber
http://lists.samba.org/archive/rsync/2009-March/022955.html
http://www.okisoft.co.jp/esc/utf8-cygwin/ Memiliki lapisan UTF8, yang memiliki efek samping meningkatkan ukuran jalur yang mungkin. Menurut penulisnya, jika Anda ingin menggunakan lebih banyak karakter, Anda dapat menaikkan konstanta di patch. Tampaknya itu bahkan lebih meretas.
Mungkin bukan yang terbaik untuk sinkronisasi jarak jauh, tetapi merupakan rsync windows yang mengklaim mendukung nama file yang lebih lama.
sumber
Jadi, jika alat-alat buruk pada Windows apakah ada cara untuk menggunakan alat Linux?
Dengan ssh - sshfs ?
Tanpa ssh - gunakan VPN dan pasang sebagai SMB?
Apa pun caranya, Anda dapat menggunakan klien rsync Linux yang lebih mampu melawan sistem file. Saya belum melakukan ini dengan data 10GB jadi YMMV. :)
sumber
Ini tidak akan membuat struktur file besar, tetapi untuk set data yang relatif kecil dengan nama yang panjang Anda bisa melihat menggunakan sesuatu seperti 7-Zip untuk membuat arsip yang kemudian dapat ditransfer oleh rsync. Anda mengatakan bahwa Anda perlu menarik data dari server Windows ke server Linux. Jika Anda memiliki akses shell, arsipkan data yang Anda butuhkan dalam sebuah wadah (7-zip), transfer wadah tersebut, dan perluas ketika sampai ke server. Ini mendorong masalah nama file panjang ke pengarsipan, yang saya percaya ada dukungan yang lebih baik dan alat-alat non-Cygwin.
sumber
Agar tidak kehilangan portabilitas, saya akan merekomendasikan Anda untuk tetap menggunakan rsync dan mencoba menyelesaikan batasan 255. Keterbatasan ini tidak lagi di dalam Windows dan dalam kode RSYNC - sebenarnya batas pada Windows adalah sekitar 2048 sekarang (jika saya ingat dengan baik).
Saya cukup yakin bahwa tidak ada port rsync selain yang ditentukan oleh Anda dan saya sarankan Anda untuk menggunakan versi uji dan melaporkan bug yang mungkin Anda temukan.
Jika Anda tidak keberatan menggunakan FTP, Anda dapat mencoba LFTP - ia memang memiliki fitur mirroring yang sangat baik tetapi tidak dibandingkan dengan rsync ketika datang ke backup / sinkronisasi.
sumber
Saya meretas bersama skrip yang untuk sementara dapat mengganti nama file atau direktori dengan nama yang lebih pendek sehingga rsync (dan program lain) dapat dilanjutkan. Anda dapat menggunakan ini sebagai bagian dari rantai alat yang Anda gunakan untuk menyalin file dari Linux ke Windows (rsync atau yang lain). Saya tidak tahu apa yang Anda maksud dengan "tidak biasa", jadi mungkin ini hanya membahas sebagian dari kebutuhan Anda. Tolong beri tahu saya jika ini bermanfaat bagi Anda.
sumber