Я використовую scp для копіювання каталогу з одного віддаленого сервера в новий каталог (IE просто змінює ім'я) на інший віддалений сервер, наприклад:
scp -prq server1:dir1 server2:dir2
Це добре працює, якщо dir2 не існує на сервері2, він створює нову директорію під назвою dir2, яка містить усе, починаючи з dir1 на сервері1.
Проблема виникає, коли dir2 вже існує на сервері2 (ПРИМІТКА. Я не маю можливості це заздалегідь знати або робити видалення на dir2 на сервері2) - що трапляється, я отримую копію 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
.