Como usar o BitTorrent Sync para sincronizar diretórios no Ubuntu 12.04
Status: Obsoleto
Este artigo aborda uma versão do Ubuntu que não é mais suportada. Se você atualmente opera um servidor executando o Ubuntu 12.04, é altamente recomendável atualizar ou migrar para uma versão suportada do Ubuntu:
- Atualize para o Ubuntu 14.04.
- Atualização do Ubuntu 14.04 para o Ubuntu 16.04
- Migre os dados do servidor para uma versão compatível
Razão:
Veja em vez disso:
Introdução
A sincronização de pastas e arquivos entre computadores e dispositivos pode ser feita de várias maneiras diferentes. Um método para sincronizar automaticamente o conteúdo é o BitTorrent Sync. BitTorrent Sync é um método de sincronização de conteúdo baseado no popular protocolo BitTorrent para compartilhamento de arquivos.
Ao contrário do BitTorrent tradicional, os arquivos compartilhados usando o BitTorrent Sync são criptografados e o acesso é restrito com base em um segredo compartilhado gerado automaticamente. Enquanto o BitTorrent propriamente dito costuma ser usado para distribuir arquivos de maneira pública, o BitTorrent Sync costuma ser usado como um método privado para sincronizar e compartilhar arquivos entre dispositivos devido às suas medidas de segurança adicionais.
Neste guia, discutiremos como instalar e configurar o BitTorrent Sync em duas instâncias Ubuntu 12.04 VPS.
Instale o BitTorrent Sync
Para começar, precisaremos instalar o BitTorrent Sync em ambas as instâncias do Ubuntu 12.04. Se você gostaria de instalar o BitTorrent Sync em seu computador local para permitir a sincronização com seu servidor, você pode encontrar os pacotes binários aqui.
O BitTorrent Sync é relativamente fácil de instalar no Ubuntu 12.04, mas não está incluído nos repositórios padrão. Podemos usar um PPA (arquivo de pacote pessoal) para que possamos ter acesso a um repositório BitTorrent Sync mantido e gerenciá-lo com nossas ferramentas apt normais.
O Ubuntu 12.04 inclui as ferramentas PPA em um pacote chamado python-software-properties
, que podemos baixar através do apt:
sudo apt-get update
sudo apt-get install python-software-properties
Após a instalação, podemos adicionar o PPA que contém os pacotes atualizados do Ubuntu:
sudo add-apt-repository ppa:tuxpoldo/btsync
Pressione \enter para adicionar o novo PPA.
Depois que o novo repositório for adicionado, devemos atualizar o apt para criar um índice de pacote para a nova fonte e, em seguida, instalar o software BitTorrent Sync:
sudo apt-get update
sudo apt-get install btsync
Configuração inicial durante a instalação
Durante a fase de instalação, serão feitas várias perguntas que podem auxiliá-lo na configuração do serviço. A primeira pergunta pergunta se você gostaria de fazer esta configuração para definir uma instância padrão do BitTorrent Sync. Selecione \Sim.
Queremos operar o BitTorrent Sync com seu próprio usuário e grupo para fins de segurança. Selecione btsync
para a próxima pergunta.
A próxima pergunta será sobre a porta que você deseja usar para se comunicar entre as instâncias. Você pode deixar a seleção em 0
para que o btsync escolha uma porta aleatória toda vez que for iniciado. Se você estiver configurando um firewall para seu servidor (o que é altamente recomendado), provavelmente desejará definir uma porta específica.
A próxima pergunta é sobre como configurar uma solicitação UPNP, da qual não precisamos. Selecione \Não.
Em seguida, defina seus limites de download e upload. Se você não deseja limitar nenhum deles, deixe o padrão de 0
para permitir a taxa de transferência máxima.
Em seguida, você será perguntado para qual interface deseja configurar o serviço. Se você deixá-lo em 0.0.0.0
, o serviço BitTorrent Sync usará qualquer interface disponível. Se desejar restringi-lo a uma rede, como a rede privada DigitalOcean, você pode especificar o endereço IP apropriado aqui. Observe que você não poderá sincronizar com seu computador doméstico usando a rede privada.
Em seguida, selecione uma porta para acessar a interface da web. O valor padrão é 8888
, mas você pode alterá-lo para qualquer porta aberta.
Por fim, selecione um nome de usuário e senha para proteger a interface da web.
A instalação será concluída e seu serviço será iniciado.
Se você precisar alterar a configuração em algum momento no futuro, poderá executar os menus de configuração a qualquer momento, emitindo:
sudo dpkg-reconfigure btsync
O diretório de configuração do serviço é:
/etc/btsync
Não edite manualmente o arquivo de configuração gerado pelo sistema de menus. Você pode, no entanto, copiar a configuração para usar como modelo para outra configuração se desejar ajustar detalhes não abordados na configuração do menu.
Como configurar pastas compartilhadas
Para sincronizar pastas com o BitTorrent Sync, o usuário ou grupo btsync
precisa ter acesso de gravação às pastas. Existem algumas maneiras diferentes de conseguir isso.
Primeiro, vamos criar a pasta:
sudo mkdir /shared
Precisamos concluir essas etapas em ambas as instâncias VPS que serão sincronizadas.
Dando propriedade total ao processo btsync
Uma maneira de conceder acesso ao usuário btsync é simplesmente atribuir a propriedade da pasta ao usuário btsync:
sudo chown btsync:btsync /shared
Isso permitirá que o serviço BitTorrent Sync sirva corretamente o conteúdo deste diretório, mas não podemos gravar nele como um usuário normal. Isso pode ser o que você deseja, mas geralmente não é.
Conceda a propriedade normal do usuário e a propriedade do grupo de processos btsync
Se você tiver apenas um usuário normal no sistema, poderá atribuir a esse usuário a propriedade da pasta e ao grupo btsync a propriedade da pasta:
Você teria então que dar ao grupo permissões de gravação:
sudo chmod 775 /shared
Isso permitirá que o serviço btsync acesse a pasta. No entanto, todos os arquivos criados dentro do diretório serão de propriedade de seu usuário e grupo.
Por exemplo, se adicionarmos um arquivo a esta pasta chamado test
, ele será totalmente propriedade do nosso usuário:
Isso causará problemas para a sincronização, porque o processo btsync não pode modificar o arquivo. Queremos dar a ele as mesmas permissões de grupo da pasta em que está, para que o processo tenha acesso de gravação.
Podemos fazer isso definindo o bit SGID no diretório. Isso definirá o grupo em todos os novos arquivos criados dentro do diretório para o grupo do próprio diretório. Isso permitirá acesso de gravação adequado para modificar as coisas:
sudo chmod g+s /shared
Agora, ao criarmos um arquivo, ele receberá as permissões do diretório:
Isso ajuda muito a obter a funcionalidade apropriada, mas ainda não está certo.
Exclua os arquivos de teste que criamos antes de continuar:
rm /shared/test*
Adicione seu usuário ao grupo btsync e dê a propriedade do usuário raiz
O método acima funciona um pouco, mas os arquivos que são transferidos com BitTorrent Sync são de propriedade do usuário e grupo btsync. Isso significa que, atualmente, quaisquer arquivos sincronizados pelo serviço não serão editáveis por nós.
Podemos mudar isso adicionando nosso usuário ao grupo btsync. Isso nos permitirá modificar arquivos graváveis pelo grupo btsync, que é o que queremos.
Adicione qualquer nome de usuário que você deseja usar o btsync ao grupo btsync:
Isso anexará o grupo btsync à definição de grupo do usuário. Isso permitirá que você edite arquivos criados na pasta compartilhada pelo processo btsync.
No entanto, o diretório ainda pertence ao nosso usuário, o que não é uma boa maneira de fazer as coisas se tivermos vários usuários no sistema. Devemos transferir a propriedade para o usuário root para evitar que usuários regulares alterem as configurações da pasta. Também devemos permitir permissões de gravação em grupo para que qualquer pessoa no grupo btsync possa adicionar conteúdo:
sudo chown root:btsync /shared
sudo chmod g+w /shared
Você pode ter que sair e entrar novamente para que essas alterações entrem em vigor.
No final, o processo para criar uma pasta compartilhada que funcione bem para o BitTorrent Sync é mais ou menos assim:
O primeiro \2 no comando chmod
configura o bit SGID da mesma forma que o \g+s fazia anteriormente. Esta é apenas uma maneira mais sucinta de combinar esses comandos.
Acessando a Interface da Web do BitTorrent Sync
Agora que temos uma pasta configurada adequadamente para o compartilhamento do BitTorrent Sync, podemos acessar a interface da web para adicionar nossa pasta para iniciar a sincronização.
Novamente, teremos que fazer isso em cada um dos servidores nos quais desejamos configurar a sincronização.
Acesse a interface da web acessando o endereço IP do seu droplet, seguido da porta que você configurou durante a instalação. Por padrão, é 8888
:
Você terá que entrar usando as credenciais que configurou durante a instalação. O nome de usuário padrão é admin
se você não o alterou.
Você será apresentado a uma interface bastante simples para começar:
Adicionando a pasta compartilhada ao primeiro droplet
Agora que estamos em nossa interface web, podemos adicionar nossa pasta compartilhada para que o processo btsync possa registrá-la.
Em sua primeira máquina, clique no botão \Adicionar pasta no canto superior direito. Isso abrirá uma caixa que permite selecionar um diretório para compartilhar:
Encontre a pasta que você configurou para compartilhamento. No nosso caso, esta é a pasta /shared
. Depois de selecionar uma pasta, você deve clicar no botão \Gerar para gerar um segredo para a pasta.
O segredo gerado permite sincronizar esta pasta com outra instância do BitTorrent Sync. Esse valor exclusivo é basicamente uma senha para permitir que os dois serviços se conectem.
Clique no botão \Adicionar quando tiver concluído essas etapas. Isso adicionará nossa pasta à interface e fornecerá alguns botões na lateral para gerenciar essa pasta.
No momento, estamos interessados apenas no botão \Segredo/QR. Clique nele para abrir uma caixa que permitirá que você escolha como deseja compartilhar esta pasta.
Podemos conceder acesso à pasta com permissões de leitura/gravação por meio de \Acesso total. Se quisermos sincronizar apenas uma maneira, como um backup, podemos permitir apenas o acesso de leitura. Os segredos fornecidos para cada tipo de acesso diferem .
Copie o segredo para o tipo de acesso que você deseja. Usaremos o acesso total neste tutorial.
Adicionando a pasta compartilhada e o segredo ao segundo droplet
Agora que temos o segredo do nosso primeiro VPS, podemos adicionar a pasta compartilhada que criamos no nosso segundo VPS e usar o segredo para sincronizar nossos arquivos.
Primeiro, você deve fazer login na interface da web da mesma forma que fez com o primeiro servidor:
Quando estiver na interface do segundo servidor, clique no botão \Adicionar pasta novamente.
Adicione a pasta compartilhada criada localmente.
Desta vez, ao invés de clicar no botão \Gerar, vamos colar o segredo da outra instância na caixa \Segredo:
Clique no botão \Adicionar para criar o compartilhamento.
Após um momento, em ambas as interfaces da web, você verá algumas novas informações na seção \Dispositivos conectados e status:
Isso significa que nossas duas instâncias do BitTorrent Sync se encontraram! O ícone na frente significa que concedemos acesso total e os arquivos serão sincronizados em ambas as direções.
Sincronização de teste
Agora que configuramos a sincronização, vamos testar para ver se funciona.
Em um de seus servidores (não importa qual se você configurou o acesso total), adicionaremos alguns arquivos à nossa pasta compartilhada.
Como um usuário que recebeu acesso ao grupo btsync, crie alguns arquivos no diretório compartilhado:
cd /shared
touch file {1..10}
Isso criará 10 arquivos no diretório compartilhado. Podemos verificar se eles receberam as permissões apropriadas digitando:
ls -l
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file1
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file10
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file2
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file3
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file4
. . .
Como você pode ver, os arquivos pertencem ao seu usuário, mas o proprietário do grupo é o btsync. Isto é exatamente o que queremos.
Se verificarmos nosso outro servidor após alguns segundos, veremos nossos arquivos em nosso diretório compartilhado!
cd /shared
ls -l
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file1
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file10
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file2
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file3
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file4
Como você pode ver, os arquivos são fornecidos ao btuser e ao grupo. Isso ocorre porque o serviço não pode ter certeza de que o nome de usuário original existe no segundo sistema.
A última etapa é fazer com que o daemon btsync defina automaticamente as permissões de arquivo dos arquivos que ele sincroniza para serem graváveis pelo grupo btsync. Isso é necessário se você estiver fornecendo acesso total para que seu usuário edite os arquivos que ele sincronizou.
Podemos fazer isso reconfigurando o daemon btsync. Isso abrirá muito mais opções do que recebemos quando originalmente passamos pela configuração. Comece a reconfigurar em ambas as máquinas de sincronização digitando:
Você percorrerá o menu de configuração, desta vez com muito mais perguntas. Na maioria das vezes, ele deve selecionar automaticamente sua seleção anterior ou a opção padrão para quaisquer parâmetros não definidos anteriormente. Uma pergunta que você deve se lembrar de não pular é o prompt de senha.
A opção que você está procurando é a umask
padrão para arquivos sincronizados pelo daemon.
Podemos definir o umask apropriado para criar arquivos que podem ser gravados tanto pelo proprietário quanto pelo grupo (do qual nosso usuário faz parte), digitando isto:
Termine a configuração e o daemon deve reiniciar automaticamente com as novas configurações. Depois de concluir esta tarefa em ambos os servidores, você poderá criar um novo arquivo em um servidor e receberá as permissões graváveis corretas no segundo host:
No segundo host, depois que o arquivo for sincronizado, você verá algo como isto:
Na interface da web, você não verá que seus arquivos foram sincronizados, porque os arquivos não contêm nenhum dado real. Se adicionarmos algum conteúdo aos nossos arquivos, a interface será atualizada para mostrar quantos arquivos sincronizamos:
for item in /shared/file{1..10}; do echo "some content" > $item; done
Conclusão
Agora que você configurou seus servidores, pode facilmente transferir arquivos entre eles. Você também pode configurar várias pastas para sincronizar automaticamente. Isso pode fornecer algumas opções interessantes para lidar com arquivos de configuração e outros.
O aplicativo é bastante flexível em como sincronizar vários computadores. Você pode criar segredos únicos para garantir que ninguém compartilhe o acesso aos seus diretórios, você pode compartilhar apenas com hosts específicos e sincronizar entre seu dispositivo móvel. BitTorrent Sync fornece um sistema de controle de versão de arquivo através do arquivo .SyncArchive
em diretórios e pode limitar a taxa para garantir que você tenha largura de banda disponível para outros aplicativos.