Estou apenas começando a aprender a usar o rsync, pois estou tentando copiar arquivos de um servidor para outro. Estou usando o seguinte comando:
rsync -avzP [email protected]:/public_html/abc/ /www/abc
Depois de inserir a senha do outro servidor, recebo a seguinte mensagem:
stdin: is not a tty
receiving incremental file list
rsync: change_dir "/public_html/abc" failed: No such file or directory (2)
sent 8 bytes
received 101 bytes 8.72 bytes/sec total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1655) [Receiver=3.1.1]
No entanto, o diretório abc existe, posso navegar nele etc. Não há espaços no nome.
Alguma idéia do que isso pode ser causado?
O erro vem do fato de que não há
/public_html/abc
diretório no sistema remoto.De acordo com os comentários , o diretório de origem está localizado no diretório inicial do usuário, não no caminho
/public_html
.Portanto:
Aqui, acessamos
public_html/abc
no diretório inicial do usuário e não na raiz do sistema de arquivos.O aviso
stdin: is not a tty
vem do fato de que o arquivo de inicialização do seu shell para shells interativos está sendo chamado no host remoto (seu~/.bashrc
arquivo, se você estiver usandobash
), e você está fazendo algo nele que requer um terminal.Você pode editar o arquivo de inicialização do shell na máquina remota e inserir o seguinte próximo ao topo:
Isso interromperia a execução de, por exemplo
~/.bashrc
, nesse ponto, todas as sessões de shell cujos fluxos de entrada padrão não estivessem conectados a um terminal.Você precisa adicionar os detalhes da conexão, por exemplo. para uso SSH
--rsh=ssh
.Tentar:
E verifique se os caminhos estão corretos. Esses caminhos são absolutos ou relativos:
/public_html/abc/
,/www/abc
?Ao usar imagens do Docker removidas, o SSH nem sempre é instalado e também levará a este erro:
apt-get install openssh-client
Primeiro, certifique-se de que o usuário ssh tenha um privilégio de gravação nesta pasta,
execute este comando abaixo
Observação
CMIIW