A cópia de Rsync falha (“nenhum tal arquivo ou diretório”)

1

Estou apenas começando a aprender como usar o rsync, já que estou tentando copiar arquivos de um servidor para outro. Eu estou usando o seguinte comando:

rsync -avzP [email protected]:/public_html/abc/ /www/abc

Depois de digitar a senha do outro servidor, eu 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, eu posso navegar nele, etc. Não há espaços no nome.

Alguma idéia de como isso pode ser causado?

    
por killer_rabbit 28.06.2018 / 01:36

3 respostas

0

Você precisa adicionar os detalhes da conexão, por exemplo. para SSH use --rsh=ssh .

Tente:

rsync -avzP --rsh=ssh [email protected]:/public_html/abc/ /www/abc

E verifique se os caminhos estão corretos. Esses caminhos são absolutos ou relativos: /public_html/abc/ , /www/abc ?

    
por 28.06.2018 / 01:59
4

O erro vem do fato de que não há diretório /public_html/abc no sistema remoto.

De acordo com comentários , o O diretório de origem está realmente localizado no diretório inicial do usuário, não no caminho /public_html .

Portanto:

rsync -avzP [email protected]:public_html/abc/ /www/abc

Aqui, acessamos public_html/abc no diretório pessoal 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 arquivo ~/.bashrc , se você estiver usando bash ), 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:

[ ! -t 0 ] && return

Isso impediria a execução de, e. ~/.bashrc nesse ponto para todas as sessões de shell cujos fluxos de entrada padrão não estão conectados a um terminal.

    
por 28.06.2018 / 08:56
-1

Primeiro, certifique-se de que o usuário ssh tenha um privilégio para gravar nesta pasta,

/www/abc 

execute este comando abaixo

rsync -avzP -e ssh /www/abc user@destinationFolderPath

Nota

  • -v "verbose" (-vv fornecerá informações mais detalhadas)
  • -e "ssh options" - especifica o ssh como shell remoto
  • -a - "modo de arquivo" - preserva as permissões (proprietários, grupos), horários, links simbólicos e dispositivos
  • -z comprime os dados do arquivo durante a transferência
  • -P mostra o progresso durante a transferência

CMIIW

    
por 28.06.2018 / 07:22