Isso não é totalmente um problema Unix / Linux, você pode fazê-lo com qualquer nível de sofisticação em qualquer sistema operacional.
Lemme reafirme seu problema:
- { 1 } Você tem N computadores que podem ou não estar conectados um ao outro em qualquer momento, geralmente considerado como compreendendo 1 mestre e vários escravos
- { 2 } Os recursos nesses computadores são dessincronizados ao longo do tempo, renomeados etc.
- { 3 } Você trabalha em um computador por vez
- { 4 } Você deseja sincronizar novamente os computadores
Solução:
{ 1 } indica que você precisa de um trabalho de reconciliação em lote em intervalos fixos quando pelo menos dois computadores estiverem conectados.
{ 2 } significa que você precisa rastrear renomeações, recategorizações, etc. para poder descobrir recursos correspondentes
{ 3 } leva a concluir que o registro autoritativo é encontrado comparando os tempos de modificação entre os computadores.
-
O pré-requisito principal para poder comparar os tempos das transações para localizar o registro mais recente e autoritativo é ter clocks precisos em todos os N computadores.
NTP
é seu amigo aqui. -
O registro de modificação é fornecido pelo mecanismo
inotify
. -
Decisão sobre o que mover onde pode ser tomada depois de identificar registros conflitantes nas N listas de arquivos. Eu recomendo o GNU
datamash
como um candidato inicial para essa tarefa. -
A movimentação de arquivos é a tarefa mais fácil.
rsync
é versátil o suficiente.
Por fim, como não sou pago por isso, deixarei a tarefa rotineira de escrever os roteiros como um exercício para o leitor.