Pergunta

Preciso usar o SCP Atualizar algum diretório em outro servidor. É similar à

for i in /usr/some/???/unknown/dir
do
cp /usr/some/file $i
done

Então, como posso fazer a pesquisa enquanto os diretórios de destino estão em outro servidor?

obrigada

Foi útil?

Solução

for i in `ssh user@otherhost find /usr/some -type d -name dir`
do
  scp user@otherhost:/usr/some/dir/$i .
done

A descoberta é o que você está procurando, eu acho ...

Outras dicas

Todo mundo esquece de lidar com espaços em nomes de arquivos: P

Para reutilizar o exemplo de LB:

OLD_IFS=$IFS
IFS=$\'n'
for i in `ssh user@otherhost find /usr/some -type d -name dir`
do
  scp user@otherhost:"/usr/some/dir/$i" .
done
IFS=$OLD_IFS

Isso será lançado sobre cada linha de saída em vez de cada palavra (e $ i é citado).

for i in `ssh user@otherhost ls /usr/some/dir/` 
do
 scp user@otherhost:/usr/some/dir/$i .
done

Se você tiver acesso shell no servidor remoto, crie uma lista dos diretórios remotamente (usando o Find, ou LS, ou o que você usaria no script do seu shell) e copie -o de volta para o sistema que você copia. Então você pode usar

for d in file_of_remote_dirs; do
    scp /usr/some/file remote_machine:d;
done
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top