ฉันมีไฟล์ที่ฉันต้องการส่งไปยังเซิร์ฟเวอร์หลายเครื่อง เป็นไปได้หรือไม่ที่จะตั้งชื่อจุดหมายปลายทางหลายแห่ง?
rsync foo.png server1:foo.png server2:foo.png
สิ่งนี้ให้ฉัน "ไม่คาดคิดจากระยะไกลหาเรื่อง: server1: foo.png
ฉันมีไฟล์ที่ฉันต้องการส่งไปยังเซิร์ฟเวอร์หลายเครื่อง เป็นไปได้หรือไม่ที่จะตั้งชื่อจุดหมายปลายทางหลายแห่ง?
rsync foo.png server1:foo.png server2:foo.png
สิ่งนี้ให้ฉัน "ไม่คาดคิดจากระยะไกลหาเรื่อง: server1: foo.png
คำตอบ:
ไม่ไม่มีวิธีในrsync
การระบุปลายทางหลายแห่ง คุณจะต้องเรียกใช้คำสั่งหลาย ๆ ครั้ง หากคุณมีเป้าหมายมากมายคุณอาจต้องการพิจารณาใช้ระบบไฟล์เครือข่ายแทน - มันอาจเหมาะสำหรับปัญหาของคุณ
ปรากฎว่ามีโปรแกรมที่อนุญาตสิ่งนี้ไม่ใช่โปรแกรม rsync ดั้งเดิม มันเรียกว่า pssh (ขนาน ssh ฉันคิดว่า)
หนึ่งในคุณสมบัติ:
"- ขนาน rsync (ขนาน -sync, upstream เรียกมันว่า prsync), คัดลอกไฟล์ไปยังหลาย ๆ โฮสต์ในขนานได้อย่างมีประสิทธิภาพ"
- http://www.ubuntugeek.com/execute-commands-simพร้อมกัน- บน - หลาย - บริการ - psshcluster-sshmultixterm.html
แม้ว่าคุณจะเรียกใช้คำสั่งหลาย ๆ ครั้งผ่านทางอินพุตไฟล์คุณสามารถทำได้โดยระบุปลายทางที่ต้องการในไฟล์ที่ต้องการหนึ่งไฟล์:
while read in; do rsync -av /Path/of/Source/Synced.file "$in":/Path/of/Destination/Synced.file; done < destinations.txt
โปรดแก้ตัวการทดสอบของฉันเนื่องจากฉันมีระบบที่ใช้ได้เพียงสองระบบในเวลานั้น แต่ฉันมั่นใจว่านี่จะใช้ได้กับหลายระบบตามที่ต้องการ ไม่ใช่วิธีที่หรูหราที่สุดที่ฉันคิด แต่เป็นวิธีหนึ่งในการทำให้เป็นอัตโนมัติ และโปรดอย่าลังเลที่จะแก้ไขให้ถูกต้องหากสิ่งนี้ใช้ไม่ได้เนื่องจากฉันไม่มีทรัพยากรสำหรับการทดสอบเกินกว่าสองระบบในเวลาที่ทำการโพสต์นี้