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,
--exclude
omitir 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.
-c
parâ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.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
fonte
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.
fonte
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.
fonte
Lifehacker tem um ótimo artigo sobre rsync para PC .
Parece que o lifehacker também recomenda o Cygwin.
Também há instruções aqui: http://optics.ph.unimelb.edu.au/help/rsync/rsync_pc1.html
fonte