Tôi đang sử dụng scp để sao chép một thư mục từ một máy chủ từ xa sang một thư mục mới (IE chỉ thay đổi tên) trên một máy chủ từ xa khác như:
scp -prq server1:dir1 server2:dir2
Điều này hoạt động tốt nếu dir2 không tồn tại trên server2, nó tạo ra một thư mục mới gọi là dir2 chứa mọi thứ từ dir1 trên server1.
Vấn đề xảy ra khi dir2 đã tồn tại trên server2 (LƯU Ý: Tôi không có cách nào biết trước điều này hoặc thực hiện xóa trên dir2 trên server2 trước đó) - điều gì xảy ra là tôi nhận được một bản sao của dir1, được gọi là dir1, trong dir2.
Tôi chắc chắn có một cái gì đó cơ bản tôi đang thiếu, nhưng tôi dường như không thể giải quyết nó.
Bất kỳ trợ giúp nhiều đánh giá cao!
Trân trọng,
Giles
Được rồi, tôi có ít hơn 10 đại diện và không thể là ar $ ed để đợi 8 giờ vì vậy đây là những gì tôi nhận được:
Đây là một kịch bản phù hợp với tôi:
#!/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
Vẫn không chắc chắn làm thế nào để làm điều này trong một lệnh hoặc thậm chí nếu có thể.
Chúc mừng @mindthemonkey, đôi khi chỉ cần có được một quan điểm mới mẻ có thể giúp chỉ đường.
cd dir2
.