ฉันค่อนข้างสับสนว่าทำไม 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
ไม่มีอะไรคืน
หากคุณเพียงแค่ ssh ในตัวเองและเรียกใช้
—
SmallClanger
which rsync
สิ่งที่คุณจะได้รับ?
$ ssh pmatos@domain.com which rsync
ส่งคืน/usr/bin/rsync
แปลก. ตอนนี้กำฟาง: บางที rsync ท้องถิ่นของคุณ
—
SmallClanger
alias
จะแก้ไขrsync --rsync-path
(หรือเสื้อคลุมท้องถิ่นอื่น ๆ )?