O que você descreve parece ser uma solução muito genérica, o que pode ser impossível (por exemplo, você não pode ter acesso off-line nem evitar a mesclagem manual, por exemplo, para arquivos multimídia).
Além das outras soluções, convém analisar Unison . Ele sincronizará várias árvores de diretórios para mantê-las idênticas após as alterações (principalmente as alterações off-line). Ao contrário do rsync, ele realmente lidará com mudanças em cópias múltiplas . Ele será inteligentemente mesclado, se possível, ou será solicitado se detectar conflitos.
Eu o uso regularmente para sincronizar meu desktop com dispositivos móveis, e funciona muito bem.
Ele precisa ser executado periodicamente, no entanto, não é um serviço contínuo.