Que ferramenta posso usar para sincronizar o conteúdo de um diretório local com o de um bucket do Rackspace Cloud Files?
Preciso de um aplicativo semelhante ao rsync para fazer um espelho, não um aplicativo de backup. O que eu quero é a capacidade de fazer
rsync --update --delete /local/dir/ cloudfiles://bucket
para que o bucket remoto contenha um espelho exato dos arquivos que estão no formato /local/dir/
.
Os metadados dos arquivos (proprietário, permissões) não são importantes e não há diretórios dentro do diretório principal.
Responder1
A maneira mais fácil de sincronizar um diretório local com arquivos em nuvem da Rackspace é por meio das ferramentas de console fornecidas peloprojeto openstack/swift. No Ubuntu, as ferramentas podem ser instaladas comapt-get install python-swiftclient
Então, supondo que você esteja no diretório que deseja fazer upload, execute o seguinte comando no terminal:
$ swift -A https://auth.api.rackspacecloud.com/v1.0 -U <username> -K <api-key> upload <containername> . --changed
Isso fará upload recursivamente dos arquivos do seu diretório atual para o <containername>
contêiner, economizando tempo ao carregar apenas os arquivos alterados. Você precisa fornecer o que <username>
você usa para fazer login no Painel de Controle da Nuvem e o <api-key>
disponível em Conta / Configurações da Conta no mesmo painel de controle.
Atenção: Se você usar caminhos relativos ou absolutos, o Swift irá carregá-los com o pseudo-caminhofornecido na linha de comandono recipiente. Portanto, se em vez de sincronizar .
você sincronizar /var/www/test
, os arquivos acabarão no /var/www/test
pseudocaminho do contêiner - provavelmente, não é isso que você deseja.
Responder2
Para Linux encontrei este projeto antigo:http://code.google.com/p/cloudfiles-sync/wiki/Instructions
Para Windows existe esta ferramenta GUI: http://www.cloudberrylab.com/free-openstack-storage-explorer.aspx
Também acabei de encontrar esta ferramenta que permite montar o armazenamento de arquivos em nuvem:http://smestorage.com/?p=static&page=LinuxDrive
Responder3
Você pode usar o módulo Rackspace Cloud Files FUSE (http://www.rackspace.com/knowledge_center/article/mounting-rackspace-cloud-files-to-linux-using-cloudfuse) para criar um sistema de arquivos montável, mas tome cuidado com as seguintes advertências:
- use algo como --size-only para determinar se o arquivo foi totalmente gravado, não -a ou algo parecido, já que a configuração de permissões e horários não é suportada
- usar --bwlimit não vai funcionar, porque o módulo armazena em cache as gravações em um arquivo temporário na memória e, em seguida, consome toda a largura de banda durante o upload; estou conduzindo um experimento usando o utilitário trickle para ver se isso ajuda
Responder4
Eu acho que você pode usar o rsync para isso, mas isso não funciona para você por qualquer motivo, tente também:Sincronizador de arquivos Unison, realmente funciona muito bem!