Como configuro o rsync no meu ambiente (cliente do windows para o servidor apache com a instalação do Wordpress)?

0

Eu li a palavra

rsync

pela primeira vez hoje, depois de procurar no sueperuser uma solução para transferir apenas arquivos que foram alterados.

Estou trabalhando em um site com esse ambiente:

  • site local em execução com o xampp (controlado por Git e repo remoto para cooperação)
  • site de teste no servidor Apache (sem git disponível)
  • site ao vivo no mesmo servidor A. (sem git)

Estou apenas descobrindo meu fluxo de trabalho, que seria algo assim:

  1. extrair do repo remoto
  2. faça alterações localmente
  3. carregar no servidor de teste
  4. faça o upload para o servidor ao vivo
  5. empurrar para o repositório remoto

Agora, o problema é que o download de & fazer o upload dos arquivos leva muito tempo se eu transferir toda a instalação do wordpress.

O rsync é a escolha certa, já que não há GIT disponível? Eu tenho acesso SSH mas realmente não sei o que estou fazendo. Alguém pode dar dicas de como configurar isso? Eu instalei o PuTTY alguns dias atrás, isso poderia ajudar?

    
por MrKainig 09.02.2016 / 18:37

1 resposta

0

O Rsync definitivamente resolverá seu problema. Se você executar o rsync usando -e "ssh <ssh params>" , ele será executado através de uma conexão ssh e, sob o capô, o que o rsync faz, ele (localmente) gera a lista de arquivos e o delta para cada um dos arquivos nessa lista, antes de compará-lo contra uma lista gerada remotamente, e enviando arquivos. Isso significa que mesmo em uma conexão rápida, pode ser lento para começar, mas uma vez que está indo é rápido.

Eu acredito que há uma versão do windows cli do rsync e ssh, se não você pode querer tentar instalar o cygwin com o bash / rsync / ssh. Não é uma instalação grande se você não quiser muito. O truque com o rsync é obter as opções certas para o que você deseja.

Portanto, no seu exemplo, você tem stagingserver.local e remoteserver.local . Vamos dizer que seu acesso ao remoteserver é como usuário releaseuser . Em primeiro lugar, certifique-se de que você pode ssh para [email protected] usando putty (sugiro que você configure ~ releaseuser / .ssh / authorized_keys em remoteserver.local para permitir que você faça login como releaseuser usando a versão pública de uma chave ssh local localkey.pub , você pode definir isso criando uma chave privada em putty-keygen e salvando as chaves privadas / públicas do openssh como localkey e localkey.pub e, em seguida, carregue a chave pública em remoteserver.local ).

Ok, então rsync o diretório local localdirectory para o controle remoto remotedirectory , usando o acima: -

rsync -rave "ssh -i localkey" localdirectory/ [email protected]:/remotedirectory/

A barra à direita em cada um dos nomes de diretório, diz para copiar o conteúdo de localdirectory para o diretório remotedirectory em vez de copiar o próprio diretório. Se você perder a barra à direita, você receberá remotedirectory/localdirectory criado no servidor remoto

Então, para explicar um pouco as opções que usei, havia -rave (que eu sempre achei fácil de lembrar). O -r significa recursivo, então desça em diretórios. O -a significa arquivo, que é o mesmo que -rlptgoD , o que significa basicamente enviar tudo (links, permissões, horas, grupos, proprietários, dispositivos, mas não hard-links, acls ou xattrs). -v significa verbose, então echo para mostrar o que está enviando e -e especifica o comando rsh (no nosso caso, ssh -i , que diz ao ssh qual arquivo de chave usar).

Espero que ajude

    
por 10.02.2016 / 13:12

Tags