Estou usando o scp para copiar um diretório de um servidor remoto para um novo diretório (IE apenas alterando o nome) em outro servidor remoto, como:
scp -prq server1:dir1 server2:dir2
Isso funciona bem se dir2 não existe no servidor2, ele cria um novo diretório chamado dir2 que contém tudo, desde dir1 no servidor1.
O problema ocorre quando o dir2 já existe no servidor2 (NOTA: não tenho como saber isso com antecedência ou remover previamente o dir2 no servidor2) - o que acontece é que obtenho uma cópia do dir1, chamada dir1, no dir2.
Estou certo de que falta algo básico, mas simplesmente não consigo resolver.
Qualquer ajuda muito apreciada!
Saudações,
Giles
Ok, tenho menos de 10 representantes e não posso esperar 8 horas, então aqui está o que eu tenho:
Aqui está um script que funciona para mim:
#!/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
Ainda não sei como fazer isso em um único comando ou mesmo se possível.
Felicidades @mindthemonkey, às vezes apenas obter um novo ponto de vista pode ajudar a indicar o caminho.
cd dir2
.