rsync ต้องการ rsync-path เมื่อ rsync ระยะไกลอยู่ในเส้นทาง


11

ฉันค่อนข้างสับสนว่าทำไม rsync จึงต้องมี --rsync-path flag แม้ว่า rsync ระยะไกลจะอยู่ในเส้นทาง

พิจารณา:

$ rsync -avze 'ssh -p 22' --delete public/ pmatos@domain.com:~/public_html
bash: /usr/local/bin/rsync: No such file or directory
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(601) [sender=3.0.7]

จากนั้นฉันลองเพิ่ม --rsync-path

$ rsync -avze 'ssh -p 22' --rsync-path=/usr/bin/rsync  --delete public/ pmatos@domain.com:~/public_html
sending incremental file list
...

ดังนั้น rsync แรกไม่ประสบความสำเร็จเพราะมันกำลังค้นหา rsync ใน / usr / local / bin แต่ทันทีที่ฉันผ่านเส้นทางที่ชัดเจนสำหรับ rsync โดยใช้ --rsync-path ก็ใช้งานได้

ทำไมนี้ (บรรทัดคำสั่งนี้คือบรรทัดที่ออกโดยการปรับใช้ rake ใน octopress)


คุณมีคำสั่งบังคับที่ท้ายปลายทางหรือไม่ มีอะไรใน. bashrc หรือ. profile ที่อาจตั้งค่าตัวแปรสภาพแวดล้อมท้องถิ่น
SmallClanger

$ cat ~/.bashrc | grep PATHไม่มีอะไรคืน
เปาโล Matos

หากคุณเพียงแค่ ssh ในตัวเองและเรียกใช้which rsyncสิ่งที่คุณจะได้รับ?
SmallClanger

2
$ ssh pmatos@domain.com which rsyncส่งคืน/usr/bin/rsync
Paulo Matos

แปลก. ตอนนี้กำฟาง: บางที rsync ท้องถิ่นของคุณaliasจะแก้ไขrsync --rsync-path(หรือเสื้อคลุมท้องถิ่นอื่น ๆ )?
SmallClanger

คำตอบ:


2

หน่วยความจำของฉันคือตอนนี้ค่อนข้างคลุมเครือเกี่ยวกับเรื่องนี้ แต่เหตุผลที่นี้ที่เกิดขึ้นก็คือว่าผมใช้ GNU Stow บน rsync ในบางจุดและสร้าง symlinks บางอย่างที่สับสนrsyncสถานที่ตั้งของ นี่ถูกจัดเรียงหลังจากดึงเส้นผมได้มาก ตอนนี้ฉันเบามากกับผม แต่ในมืออื่น ๆ rsyncที่ฉันได้ทำงาน นั่นต้องชนะถ้าคุณถามฉัน

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