Quick Way para sincronizar diretórios em casa e trabalho PC

0

Estou procurando uma boa ferramenta para o seguinte fluxo de trabalho:

Eu tenho um diretório (~ 500MB) de projetos diferentes. Código do site, aplicativos C, aplicativos django, pequenas máquinas virtuais, imagens, etc. Este diretório atualmente mora em um laptop que eu uso basicamente para qualquer coisa relacionada a computador, e quando vou para o trabalho (assistente de estudante na universidade) eu geralmente faço isso. laptop comigo e configurá-lo lá.

Agora, no entanto, vou ter um PC para o meu trabalho lá, o que significa que não precisarei carregar meu laptop, mas preciso de uma maneira de sincronizar meu trabalho entre as duas máquinas.
Basicamente, eu nunca vou ter as duas máquinas rodando ao mesmo tempo, então o fluxo de trabalho mais simples que eu posso imaginar seria:

  • toda vez que eu inicio uma das máquinas, ele deve puxar a última versão
  • toda vez que eu paro um dos machiens, ele empurra sua versão como mais recente

onde "push" e "pull" são alguns processos de caixa preta de acesso a um armazenamento de dados remoto.

Atualmente, implementei isso usando um lftp mirror --reverse --delete em um webhosting, mas é terrivelmente lento. Existe alguma solução melhor que eu não saiba?

ATUALIZAÇÃO: Embora ainda seja muito lento, consegui acelerar consideravelmente a sincronização através da sinalização --parallel de lftp.

aqui está a minha chamada para o processo "push":

lftp -e '
  set ftp:sync-mode off
  open $HOST
  user $USER $PASS
  mirror --reverse --delete --verbose --parallel $SOURCE $TARGET
  bye'
    
por Andreas Grapentin 23.01.2014 / 18:33

2 respostas

1

Rsync

Este parece ser o caso de uso do rsync. Página inicial: link

Na página de manual :

Description

Rsync is a fast and extraordinarily versatile file copying tool. It can copy locally, to/from another host over any remote shell, or to/from a remote rsync daemon. It offers a large number of options that control every aspect of its behavior and permit very flexible specification of the set of files to be copied. It is famous for its delta-transfer algorithm, which reduces the amount of data sent over the network by sending only the differences between the source files and the existing files in the destination. Rsync is widely used for backups and mirroring and as an improved copy command for everyday use.

Rsync finds files that need to be transferred using a "quick check" algorithm (by default) that looks for files that have changed in size or in last-modified time. Any changes in the other preserved attributes (as requested by options) are made on the destination file directly when the quick check indicates that the file's data does not need to be updated.

Some of the additional features of rsync are:

  • support for copying links, devices, owners, groups, and permissions
  • exclude and exclude-from options similar to GNU tar
  • a CVS exclude mode for ignoring the same files that CVS would ignore
  • can use any transparent remote shell, including ssh or rsh
  • does not require super-user privileges
  • pipelining of file transfers to minimize latency costs
  • support for anonymous or authenticated rsync daemons (ideal for mirroring)

Um exemplo de um rsync seria:

rsync -avz user@host:'/src/' /dst

Alguns Gotcha's são os seguintes:

  • Esteja ciente de que o trailing '/' faz a diferença. Os dois seguintes são os mesmos

    • rsync -avz / src / dst
    • rsync -avz / src / / dst / src
  • Você deve ter cuidado com arquivos com espaços para que eles não sejam expandidos quando a cópia for executada no shell remoto.

    • rsync -avz usuário @ host: '/ src / isto é ruim' / dst
    • rsync -avz usuário @ host: "'/ src / isto é bom'" / dst
    • rsync -avz usuário @ host: '/ src / this \ é \ ok \ too' / dst

Você precisa ter um daemon ssh para cópias remotas ou executar o rsync no modo daemon no computador remoto.

A primeira transferência levará algum tempo, mas as cópias subseqüentes deverão ser mais rápidas, pois copiarão apenas os arquivos que foram alterados em tamanho.

Também é útil usar regras de filtragem se você quiser pular certos tipos de arquivos ou diretórios.

    
por 24.01.2014 / 04:11
0

porque não usa o dropbox ou o skydrive. aplicativos semelhantes como esse. 500M não é muito nos dias de hoje, especialmente quando tudo está se movendo para fibra ótica.

    
por 23.01.2014 / 18:43

Tags