it-swarm-pt.tech

Existe uma solução de backup Linux funcional que usa o inotify?

Leva uma eternidade para fazer backup. Antes de podermos confiar no btrfs ou no ZFS para fazer backup de instantâneos incrementais, não seria bom se houvesse um daemon que usasse o inotify para rastrear quais arquivos realmente foram alterados para que os backups fossem executados mais rapidamente? Onde está esse programa?

Como faço backup de minha caixa Linux sem ter que rastrear todo o sistema de arquivos todas as vezes? Eu gostaria de um programa que detectasse as fotos novas ou alteradas, o código-fonte etc. e os colocasse em fila para serem copiados para o meu NAS.

17
joeforker

Eu respondi minha própria pergunta com "yum search inotify". É chamado lsyncd e está hospedado no código do Google.

Infelizmente, parece que sempre executa um rsync completo primeiro, então ainda não me ajudaria se meu computador não ficasse ligado por mais de 14 horas seguidas.

Lsyncd usa rsync para sincronizar diretórios locais com uma máquina remota executando rsyncd. Lsyncd observa várias árvores de diretórios por meio do inotify. A primeira etapa após adicionar os relógios é rsync todos os diretórios com o host remoto e, em seguida, sincronizar o arquivo único coletando os eventos do inotify. Portanto, o lsyncd é uma solução de espelho dinâmico leve que deve ser fácil de instalar e usar, ao mesmo tempo em que se integra bem ao seu sistema. Veja lsyncd --help para opções detalhadas de linha de comando.

11
joeforker

Existe um novo sistema chamado fsnotify que foi projetado para resolver as deficiências de inotify que foi introduzido para resolver os problemas de dnotify. fsnotify permite que você observe um sistema de arquivos inteiro sem muito barulho. Esperançosamente fsnotify ajudará a resolver todos os nossos futuros problemas de backup do Linux.

3
joeforker

Com base em pesquisas (não em testes), parece que o inotify não consegue lidar com o grande número de arquivos na maioria dos sistemas e/ou é muito lento para fazê-lo. O tópico em http://www.pubbs.net/kernel/200905/109416/ foi o mais útil, Ele apontou para um novo recurso do Linux que parece estar em linha principal ou direcionado para fsnotify, que está no Linux 2.6.31 e posterior.

2
user26055

Você pode hackear algo com incron .

/path1 IN_CLOSE_WRITE rsync -au $ @/$ # backuphhost:/path
2
hayalci

O Lsyncd sincroniza toda a árvore observada na inicialização, porque em 99% dos casos essa é a coisa sensata a fazer. Você quer o diretório no Host de destino que você tem no Host local, caso contrário, a sincronização pode falhar e você deseja sincronizar coisas que perdeu enquanto estava desligado. No entanto, se você sabe o que está fazendo, pode desligar a sincronização de inicialização, apenas defina sync {..., startup = false} no arquivo de configuração Lsyncd.

em relação ao inotify, não é o número de arquivos, mas o número de diretórios que consomem recursos. Um diretório é um relógio, independentemente de quantos arquivos ele contenha.

fanotify baseado em fsnotify como o inotify parecia muito promissor para pessoas que assistiam a toneladas de diretórios, mas atualmente a partir do Linux 2.6.37 fanotify não relata eventos de renomeação (movimentação), tornando-o inutilizável para um trabalho como este :-(

2
axkibe

Passei 6 meses procurando a melhor solução para realizar o que você está tentando fazer; backup com eficiência em um NAS. Após a sincronização inicial, todo o resto é suave como manteiga. A última versão do Lsyncd funciona muito bem. Documentei o que fiz no link abaixo. Basta substituir os valores da pasta. Espero que isto ajude:

https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit

1
Bobo

há um novo sistema usado na Ásia, chamado sersync, que em vez de inotify-tool + resolução rsync http://code.google.com/p/sersync/ é muito fácil de usar.

0
skiller