Я использую scp для копирования каталога с одного удаленного сервера в новый каталог (IE просто меняет имя) на другом удаленном сервере, например:
scp -prq server1:dir1 server2:dir2
Это прекрасно работает, если dir2 не существует на server2, он создает новый каталог с именем dir2, который содержит все, начиная с dir1 на server1.
Проблема возникает, когда dir2 уже существует на сервере server2 (ПРИМЕЧАНИЕ. У меня нет возможности узнать об этом заранее или выполнить удаление на dir2 на server2 заранее) - в результате я получаю копию dir1, называемую dir1, в dir2.
Я уверен, что есть кое-что основное, что я пропускаю, но я просто не могу решить это.
Любая помощь высоко ценится!
С Уважением,
Giles
Хорошо, у меня менее 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
.