ฉันกำลังใช้ scp เพื่อคัดลอกไดเรกทอรีจากเซิร์ฟเวอร์ระยะไกลหนึ่งไปยังไดเรกทอรีใหม่ (IE เพิ่งเปลี่ยนชื่อ) บนเซิร์ฟเวอร์ระยะไกลอื่นเช่น:
scp -prq server1:dir1 server2:dir2
สิ่งนี้ใช้ได้ดีถ้า dir2 ไม่มีอยู่บน server2 มันจะสร้างไดเรกทอรีใหม่ที่ชื่อว่า dir2 ซึ่งมีทุกอย่างจาก dir1 บน server1
ปัญหาเกิดขึ้นเมื่อ dir2 มีอยู่แล้วบน server2 (หมายเหตุ: ฉันไม่มีทางรู้ล่วงหน้าหรือทำการลบบน dir2 บน server2 ล่วงหน้า) - สิ่งที่เกิดขึ้นคือฉันได้รับสำเนาของ dir1 เรียกว่า dir1 ใน dir2
ฉันแน่ใจว่ามีบางสิ่งพื้นฐานที่ฉันขาดหายไป แต่ฉันก็ดูเหมือนจะไม่สามารถแก้ไขได้
ความช่วยเหลือใด ๆ ที่ชื่นชมมาก!
ความนับถือ,
ไจล์ส
โอเคฉันมีน้อยกว่า 10 ตัวแทนและไม่สามารถเป็น $ $ รอ 8 ชั่วโมงดังนั้นนี่คือสิ่งที่ฉันได้รับ:
นี่คือสคริปต์ที่เหมาะกับฉัน:
#!/bin/sh
echo "method 1"
scp -prq server1:dir1/* server2:dir2/ >/dev/null 2>&1
if [ "$?" -ne "0" ]; then
echo "failed ... trying method 2"
scp -prq server1:dir1 server2:dir2
fi
exit
ยังไม่แน่ใจว่าจะทำอย่างไรในคำสั่งเดียวหรือแม้กระทั่งถ้าเป็นไปได้
ไชโย @mindthemonkey บางครั้งแค่รับมุมมองใหม่สามารถช่วยชี้ทาง
cd dir2
แล้วตรวจสอบการส่งออกของที่