rsync
interpreta dois pontos em nomes de arquivos como indicadores de que o anterior é um nome de máquina remota. Quando você tenta sincronizar novamente um arquivo que possui dois pontos em seu nome, o rsync normalmente fica confuso, produzindo erros como
The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(1166) [Receiver=3.0.9]
ou
Unexpected remote arg: 02\:12\:43.481000"
rsync error: syntax or usage error (code 1) at main.c(1232) [sender=3.0.9]
(observe que meu caso de uso é um monte de arquivos com datas em seus nomes)
Como posso usar o rsync para enviar arquivos seletivamente usando curingas. Algo como:
rsync -avz my_special_files* othermachine:/other/path/
Responder1
Faça isso no diretório pai:
rsync -avz parent_directory/my_special_files* othermachine:/other/path/
e funciona (pelo menos no Ubuntu 12.04 com protocolo rsync 3.09 versão 30).
A razão? algo a ver com a lógica que o rsync usa para reconhecer hosts. Barras precedidas de palavras parecem não ser consideradas hosts. Estranhamente, quando usei find
, para que todos os nomes tivessem "./" anexados, ainda não funcionou.
Há algumas discussões por aí sobre esse tipo de questão,por exemplo isso, mas eles não falam sobre o uso de curingas e coisas do gênero. Eles, no entanto, me inspiraram a tentar o que funcionou no final.