ฉันเคยใช้ rsync / ssh ในบางครั้งเพื่อสำรองเนื้อหาโฮสต์ที่แชร์ไปยัง Synology NAS ส่วนตัวของฉัน (212j สำหรับเรื่องนั้น) และมันใช้งานได้ดี สำหรับข้อมูลฉันใช้การssh
เชื่อมต่อที่ไม่มีรหัสผ่าน
3 วันที่ผ่านมาฉันอัปเดตซอฟต์แวร์ NAS ของฉันและตั้งแต่ (หรืออย่างน้อยฉันเชื่อว่ามันเป็นอย่างนั้น) การสำรองข้อมูลจะไม่ทำงานอีกต่อไป ฉันได้รับข้อผิดพลาดต่อไปนี้ในโฮสต์:
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
ERROR: module is read only
.. ซึ่งฉันไม่เข้าใจ นอกจากนั้นไม่มีอะไรเปลี่ยนแปลงที่ฉันรู้ทั้งในต้นทางและปลายทางที่สามารถเกี่ยวข้องกับrsync
หรือssh
ฉันตรวจสอบบางสิ่งและดูเหมือนว่าจะไม่เป็นไร:
- ฉันยังคงสามารถเชื่อมต่อผ่าน
ssh
จากโฮสต์ไปยัง NAS ของฉันด้วยผู้ใช้ที่ดีดังนั้นสิ่งที่ ssh เช่นปุ่มไม่เปลี่ยนแปลง - ฉันยังมีสิทธิ์การใช้ไฟล์ที่ถูกต้องใน NAS (ฉันตรวจสอบแล้วและพยายามสร้างไฟล์ไดเรกทอรี .. โดยผู้ใช้
rsync
ผ่านssh
)
ฉันอ่านที่นี่และที่นั่นข้อผิดพลาดหมายความว่าฉันต้องให้แน่ใจว่าฉันrsyncd.conf
มีสิทธิ์read only = no
ในมัน แต่เท่าที่ฉันรู้ฉันไม่เคยใช้rsyncd
เช่นเดียวกับที่ฉันไม่เคยกำหนดค่าใด ๆ สำหรับมันและจนถึงตอนนี้มันทำงานเหมือนมีเสน่ห์ .
ฉันใช้คำสั่งต่อไปนี้เพื่อสำรองข้อมูล:
rsync -ab --recursive \
--files-from="$FILES_FROM" \
--backup-dir=backup_$SUFFIX \
--delete \
--filter='protect backup_*' \
$WDIRECTORY/ \
remote_backup:$REMOTE_BACKUP/
ดังนั้นฉันจึงติดอยู่และไม่สามารถเข้าใจได้ว่าเกิดอะไรขึ้น
แก้ไข:
ตามที่แนะนำในความคิดเห็นฉันยังลองส่งคำสั่งไปยัง ssh (แต่ไม่ใช่จากในเซสชัน ssh) ที่ทำงานได้ตามที่คาดไว้และลองใช้คำสั่ง rsync เดียวซึ่งไม่ได้ผลล้มเหลวเหมือนคำสั่งสำรองที่สมบูรณ์
(sharedHost):hostuser:~ > touch test.txt
(sharedHost):hostuser:~ > rsync test.txt remote_backup:backups/test.txt
ERROR: module is read only
rsync error: syntax or usage error (code 1) at main.c(1034) [Receiver=3.0.8]
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]
และ
(sharedHost):hostuser:~ > ssh remote_backup 'touch /abs_path_to_backups/backups/test2.txt && echo "ProoF" > /abs_path_to_backups/backups/test2.txt'
(sharedHost):hostuser:~ > ssh remote_backup 'cat /abs_path_to_backups/backups/test2.txt'
ProoF