Eu tenho três caixas de janelas conectadas a uma caixa Linux na minha rede de várias maneiras (uma local para a rede, uma é um laptop e pode ou não ser local e a outra é minha área de trabalho). Atualmente, estou usando o git para sincronizar a maioria das minhas coisas entre as caixas (usando a caixa do Linux como servidor) e funciona como um campeão.
Agora, no entanto, eu também gostaria de adicionar minha coleção de MP3 (12 shows) para ser sincronizada com eficiência entre as caixas. Inicialmente, pensei que poderia usar o git para isso, mas parece que o rsync seria uma escolha melhor, pois eu realmente não preciso de todas as coisas históricas. Como todos os meus scripts de gerenciamento existentes são executados no git bash (em vez do cygwin), eu gostaria de poder usá-lo no git bash (MINGW32 é o que diz na barra de título da janela). Posso apenas fazer o download no Cygwin e copiá-lo ou existe uma maneira melhor de abordá-lo? A caixa do Linux está executando a versão mais recente do Ubuntu Server edition - preciso fazer algo para permitir que o rsync funcione corretamente?
Sei que provavelmente estou fazendo isso de uma maneira um pouco mais difícil do que o necessário, mas também estou usando isso como um exercício para melhorar minhas habilidades de linha de comando. Alguma sugestão?
Posso usar o rsync no meu shell cygwin, mas não no msysgit. Tentei copiar o rsync.exe da pasta bin do cygwin para a pasta bin do msysgit, mas ele ainda não está sendo encontrado. Há algum outro passo que preciso fazer para instalá-lo lá? É estranho que eu esteja recebendo um erro que não consegue encontrar o arquivo, em vez de me dar um erro de que uma das dependências do arquivo está ausente.
rsync.exe
apenas várias versões do rsync nos.pkg.tar.xz
formatos. Isso pode ser bom, exceto que não consigo instalarapt-get install xz-utils
(sudo apt-get install xz-utils
) porque não consigo instalar osudo
ORapt-get
no Git Bash para Windows :-( e, portanto, não consigo instalarxz-utils
. Existe alguma maneira de contornar isso? Existe um link mais recente onde posso obterrsync.exe
ou de alguma forma, posso fazer com que o Git Bash descompacte esse arquivo .xz?tar -xf rsync-3.1.3-1-x86_64.pkg.tar.xz
, eu recebo um monte de mensagens informando:Cannot open: Permission denied
,Cannot mkdir: Permission denied
,Cannot mkdir: No such file or directory
eCannot open: No such file or directory
para vários arquivos / diretórios. Talvez o Git Bash já saiba como descompactarxz
arquivos? Mas não pode b / e de permissões? Não consigo usar ou instalarsudo
. para Git Bash.cd / && tar Jxvf /c/Users/$USR/Downloads/rsync-3.1.3-1-x86_64.pkg.tar.xz
C:\Program Files\Git\usr\bin
pasta.Eu sei que a pergunta não é "Usando o rsync para MSYS", mas acho que mencionar isso é relevante:
O "MinGW Shell" (anteriormente conhecido como "MSYS (Basic System)") tem de fato o rsync. Estou usando esse shell / sistema o mais rápido possível, pois é muito menor que o Cygwin. (Provavelmente sou o único que se preocupa com o tamanho dos arquivos atualmente.)
O "Git for Windows" / "Git Bash" pode facilmente adicionar o rsync, pois ele é baseado no MinGW / MSYS e foi mencionado na lista de discussão anteriormente.
PS! Se o seu MinGW Shell não possui rsync, basta executar "mingw-get install msys-rsync" para adicioná-lo.
Atualizado em 25 de março de 2016:
O Git para Windows agora usa o MSYS2. E o MSYS2 usa "pacman", não "mingw-get", para instalar pacotes. Infelizmente, "Git for Windows" não inclui pacman ... Há duas opções:
A última opção é a minha favorita, mas ainda não foi simplificada, portanto a primeira opção é provavelmente mais fácil. Felizmente, será corrigido .
PS! Não brinquei muito com o MSYS2 / pacman, mas parece muito promissor.
Atualizado 7 de agosto de 2019:
Se você estiver usando o Git for Windows (Git Bash), é muito melhor pegar o pacote rsync no repositório do pacote MSYS2, conforme descrito na resposta acima .
fonte
$ mingw-get bash: mingw-get: command not found
pacman -S rsync
. No passado, usei o CygWin, mas acho que o MSYS2 é incrível, não preciso executar uma interface gráfica para instalar pacotes extras.Eu suponho que
git bash
você realmente quis dizermsysgit
, também conhecido como "git for windows". A opção Menu Iniciar égit bash
, que explica o nome que você usou.Primeiro, você está correto em descartar o git como uma opção aqui. Uma das coisas que o git não faz bem é lidar com arquivos binários - e você acabaria com um repositório enorme e inchado. Além disso, como você não estará lidando com mudanças, usar a sobrecarga do git me parece um exagero.
Em segundo lugar, parece que a pergunta que você está realmente perguntando é: "Posso usar o rsync do msysgit / Windows?" A resposta curta é, não fora da caixa.
msysgit
é realmente apenas a linha de comando do Windows em termos de forma e função. Dito isto, você tem duas opções: baixar uma ferramenta de terceiros para ativar o rsync em sua máquina Windows ( Stack Overflow: Rsync para Windows ) ou apenas usar o cygwin. Realmente, eles têm o mesmo resultado - então cabe a você decidir quais funcionam melhor.fonte
msysgit
é a linha de comando do Windows, que suporta executáveis do Windows. O que provavelmente está acontecendo é que ele nem é capaz de detectar o arquivo como executável. Simplificando, cygwin e msysgit não são nem remotamente compatíveis.cygiconv-2.dll
,cygwin1.dll
ersync.exe
de Cygwin ao seu caminho msysgit. Nada mais (especialmente o ssh.exe). O problema geralmente é uma incompatibilidade entre o Git SSH e o Cygwin / rsync SSH. Tente manter a mesma versão. Você ainda terá problemas com o,/cygdrive/
mas não tenho solução, exceto acd
.Pelo que vale a pena, eu estava tendo problemas semelhantes ao fazer com que o cwRsync funcionasse no msysgit quando jogado no caminho da lixeira, mas depois de tentar muitas coisas diferentes, finalmente descobri que simplesmente atualizar para a versão mais recente (2.10.2) do Git para Windows corrigia o questão.
fonte
O rsync é ótimo para sincronização unidirecional. Você pode executar o rsync no cygwin ou, no Windows, também há Deltacopy
Se você deseja ter sincronização bidirecional, dê uma olhada em uníssono
Para uma ferramenta de sincronização de diretório de plataforma cruzada, há syncthing que funciona na maioria das plataformas.
fonte