ฉันต้องทำอย่างไรเพื่อ rsync บน Windows เพื่อให้อักขระพิเศษในชื่อไฟล์บน Linux


3

เรากำลังดำเนินการสำรองข้อมูลนอกสถานที่ของเซิร์ฟเวอร์ทั้งหมดของเรากับเซิร์ฟเวอร์ Linux ระยะไกล เรากำลังใช้ rsync มากกว่า SSH สิ่งที่ฉันได้พบคือตัวอักษรเช่นñ, ö, ôและãจะถูกแทนที่บนเซิร์ฟเวอร์ Linux ด้วยเครื่องหมายขีดล่าง ฉันไม่คิดว่ามันจะเปลี่ยนแปลงตัวละครเหล่านี้ในชื่อไฟล์ของเอกสารหรือไม่ แต่เมื่อมันเปลี่ยนชื่อชุดภาษาจาก Español.clx ไปยัง Espa_ol.clxมันอาจทำให้เกิดปัญหากับเราได้อีก

บรรทัดคำสั่งปัจจุบันของฉันคือ:

rsync -v -rlt -z --chmod=a=rw,Da+x -u --delete -e "ssh -i <keyfile>" <source> <destination>

ฉันต้องทำอย่างไรจึงจะแตกต่างกันเพื่อให้อักขระพิเศษคัดลอกไปอย่างถูกต้อง

แก้ไข: สำหรับการซิงค์ครั้งแรกซึ่งจะเกิดขึ้นในเครื่องก่อนที่เครื่องจะถูกย้ายไปนอกสถานที่ฉันเปิดใช้งาน SAMBA ฉันสามารถคัดลอกไฟล์จาก Windows ไปยังการแบ่งปัน Samba โดยคงชื่อไฟล์เดิมไว้ได้แม้ว่ามันจะดูแตกต่างจากในรายการไดเรกทอรี Linux เช่นว่า têst กลายเป็น têst. ไฟล์เหล่านี้จะถูกลบโดย rsync เมื่อมันทำงานเพราะมันไม่ตรงกับชื่อไฟล์


คำถามนี้ superuser.com/questions/91967/rsync-character-set-problems คล้ายกัน แต่ไม่เกี่ยวข้องกัน ฉันไม่ได้ติดตั้ง Windows share ใน Linux แทนที่จะใช้ไคลเอ็นต์ rsync บนเครื่อง Windows โดยตรง
RichieACC

ลองดูที่ตัวเลือก rsyncs --iconv
matthias krull

เมื่อฉันใช้ --iconv = utf-16 ซึ่งก็คือเมื่อฉันเข้าใจแล้วการเข้ารหัสที่ windows ใช้นั้น rsync จะตายด้วย: [sender] ไม่สามารถแปลงชื่อไฟล์ได้ (อาร์กิวเมนต์ไม่ถูกต้อง)
RichieACC

คำตอบ:


5

การเพิ่มพารามิเตอร์

--iconv=ISO-8859-1,utf-8

ดูเหมือนจะแยกแยะปัญหาแล้ว


0

ฉันได้รับไฟล์ที่มีตัวละครแปลก ๆ ที่ทำงานโดยใช้ rsync 3.1.2 ของ cygwin ที่ติดตั้งผ่าน setup-x86_64.exeและไม่ใช่ rsync ของ DeltaCopy ซึ่งดูเหมือนว่าจะใช้งานที่ล้าสมัย cygwin1.dll.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.