Como usar o rsync do Windows PC para o servidor Linux remoto?

23

Como uso o rsynccomando de uma máquina local do Windows 7 para um servidor Linux remoto?

Qual software é necessário na máquina Windows 7 para usar rsync?

O servidor Linux remoto está usando o Linux AMI da Amazon. O comando rsyncjá está ativado na máquina e posso editar qualquer acesso necessário à máquina.

Isso serve para configurar um servidor da Web na máquina remota e editar na minha máquina local e manter os arquivos sincronizados.

Eu não quero acesso bidirecional entre as máquinas, apenas editarei arquivos na minha máquina local e os manter atualizados na máquina remota.

ATUALIZAR:

Instalei o cygwin na minha máquina Windows 7 e instalei o pacote rsync . Alguém pode fornecer as etapas para configurar a conexão da máquina Windows 7 com o servidor Linux remotamente?

Digamos que eu queira chamar uma pasta C:\wwwna minha máquina Windows e mantê-la atualizada \var\wwwna minha máquina remota, como faço isso? Não é um backup em si, ele atualiza os arquivos que eu edito no meu computador local.

paradd0x
fonte

Respostas:

9

Eu tenho o MinGW (também conhecido como 'Git Bash' ) no Windows 7 e um arquivo em lotes que executa o rsync para fazer backup de arquivos em uma unidade externa em um computador Linux remoto. Aqui está o arquivo em lotes ( my_rsync_file.bat)

REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
cd ../
REM starting rsync...
bash -c "rsync -avzh -P --stats --timeout=60  --exclude Downloads . '[email protected]:/media/my_remote_linux_computer/LaCie/My\ Documents'"

Aqui está um pouco de explicação linha por linha:

REM Changing directory... (assuming we are in G:/My Documents/My Various Things)

Isso apenas emite uma mensagem para me lembrar o que está acontecendo.

cd ../

Isso altera o diretório um nível acima de onde está o arquivo em lotes (para 'Meus documentos'). O arquivo em lote está em uma unidade externa no meu computador com Windows. Quero sincronizar toda a pasta 'Meus documentos' nesta unidade externa com uma pasta com o mesmo nome em uma unidade externa no meu computador Linux remoto.

REM starting rsync...

Apenas imprime outra mensagem.

bash -c "rsync -avz -P --stats --timeout=60 --exclude Downloads . [email protected]:/media/my_remote_linux_computer/LaCie/My\\ Documents"

bash: inicia o MinGW que possui uma biblioteca rsync integrada
-c: não tem certeza do que isso faz
rsync: biblioteca para sincronizar arquivos, vem com o MinGW
-avzh: a-Archive, v-Verbose, z-Compress, h-Human-readable, essas são as opções comuns (mais: http://linux.die.net/man/1/rsync )
-P: mostre o progresso de arquivos grandes para que eu saiba se está congelado ou não
--stats: mostre o resumo de quantos arquivos e bytes foram transferidos no final
--timeout=60: mate-o depois 60 segundos, se ele ficar parado,
--excludeomitir arquivos / diretórios da sincronização; nesse caso, excluo um diretório chamado 'Downloads'
.: indica para sincronizar todo o conteúdo de 'Meus documentos' (espere que o item especificado seja excluído na linha acima)
my_remote_linux_computer: name do meu computador Linux remoto (não é o nome real;)
@128.95.155.200: os endereços IP do meu computador linux remoto, em https://www.whatismyip.com/ (não o meu endereço IP real :)
/media/my_remote_linux_computer/LaCie/My\\ Documents: o caminho para o diretório no meu computador linux remoto em que desejo receber os arquivos. É uma unidade externa.

Observe que o espaço em "Meus documentos" é escapado com duas barras invertidas, e o nome completo e o diretório do destino remoto estão entre aspas duplas.

Quando inicio um clique duplo no arquivo bat, solicito a senha do meu computador linux remoto. Quando termina, recebo uma saída resumida e sou solicitado a pressionar qualquer tecla para fechar.

Ben
fonte
Descrição do -cparâmetro bash man: se a opção -c estiver presente, os comandos serão lidos da string. Se houver argumentos após a sequência, eles serão atribuídos aos parâmetros posicionais, começando com $ 0.
Lukasz Stelmach
6

Se você deseja um aplicativo gratuito que inclua cygwin e rsync com uma ótima interface gráfica, dê uma olhada no Deltacopy :

http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp

  • Backup incremental - copia parte do arquivo que é realmente modificado
  • Agendador de tarefas - Os perfis no DeltaCopy podem ser executados com base em um agendamento
  • Notificação por email - os administradores podem receber confirmação por email em transferências bem-sucedidas e com falha
  • Restauração com um clique - Os arquivos de backup podem ser facilmente restaurados.
  • Ambiente amigável para Windows - Não é necessário modificar manualmente os arquivos de configuração ou brincar com as opções da linha de comando.
Linker3000
fonte
6

Uma opção pode ser instalar o rsync instalando o cygwin no Windows. Provavelmente existe uma abordagem muito mais direta para isso.

Outra opção poderia ser o rsync do lado do linux - você pode configurar um meio para a máquina remota acessar arquivos locais e depois o rsync de lá (dê uma olhada na montagem de compartilhamentos smb / cifs).

Eu suspeito que ainda existem opções melhores, mas talvez isso ajude um pouco.


Atualização para 2017

Com o subsistema Linux disponível no Windows 10, você provavelmente pode instalar um servidor ssh & rsync com muita facilidade e usar o rsync com o Windows por meio disso.

James T Snell
fonte
5

O MinGW possui um rsync interno que parece funcionar muito bem. Ele ainda tem um modo daemon - embora eu não tenha testado isso. Eu recomendo o MinGW sobre o cygwin por vários motivos: O MinGW é uma instalação menor e é nativo do Windows.

AC Verbeck
fonte