O SparkleShare é uma alternativa livre para o Dropbox e já comentamos sobre eles anteriormente. Mas o uso do SparkleSahe em máquinas com arquiteturas diferentes (Linux e Mac) não tem se mostrado muito viável, pelo menos para o meu caso, onde estou sincronizando diretórios bem grandes > 2 GB. Assim, decidi tentar utilizar diretamente o git para realizar a sincronização.

O procedimento é basicamente o mesmo utilizado no SparkleShare, mas agora o próprio usuário fica “encarregado” de realizar as atualizações.

Instalação no Servidor

Considerando que o servidor é uma máquina Linux com Ubuntu/Debian, instale o openssh-server e o git-core com os comando abaixo, onde git é o nome do diretório a ser sincronizado.


$ sudo apt-get install git-core openssh-server
$ git init --bare git

O primeiro comando acima vai instalar o git juntamente com o serviço ssh. O segundo comando irá criar um repositório, chamado git, onde serão armazenados os arquivos.

Configuração de acesso sem senha para o servidor

  1. Execute o comando abaixo e aceite as opções default


$ ssh-keygen

  1. Copie sua chave para o servidor remoto com o comando, substituia USUARIO e SERVIDOR.COM pelos respectivos nomes que você está usando


$ ssh-copy-id USUARIO@SERVIDOR.COM

Primeiro clone do repositório remoto

Execute o comando abaixo em uma das máquinas clientes.

$ git clone USUARIO@SERVIDOR.COM:/home/USUARIO/git

Trabalhando com o repositório

A partir desse ponto, você pode trabalhar normalmente no diretório, seja adicionando arquivos, alterando-os, etc. Para efeitos de testes, vamos adicionar um arquivo qualquer. Vá para o diretório de trabalho e crie um arquivo com os comandos abaixo:

$ cd git
$ echo "teste" > teste.txt

Em seguida, adicione o arquivo ao controle do git com os comandos

$ echo "teste" > teste.txt
$ git commit -m "carga inicial"

Os comandos acima incluiram um arquivo no controle de versão local. Para enviar para o servidor central, execute o comando

$ git push USUARIO@SERVIDOR.COM:/home/USUARIO/git HEAD

Se quiser utilizar esse mesmo repositório em outra máquina basta executar o comando abaixo na outra máquina.

$ git clone USUARIO@SERVIDOR.COM:/home/USUARIO/git

A partir dai, a rotina de trabalho consiste basicamente em:

  1. Atualizar o diretório corrente com o repositório central com “git pull”
  2. adicionar arquivos com “git add .”,
  3. realizar commits com “git commit -m …”
  4. enviar as alterações para o repositório central com “git push”

Certamente o procedimento acima é mais “trabalhoso” que usar o SparkleShare ou DropBox, mas tem a vantagem de termos mais controle sobre o que está ocorrendo. Uma possível melhoria é desenvolver alguns scripts que sejam executado via crontab para realizar as atualizações automaticamente.

1 Comentário on Usando o git para sincronizar diretórios

  1. Jacques disse:

    Quem quiser iniciar o dropbox com 250mb aqui esta o link: http://db.tt/BVwMBf4

Deixe um Comentário

*