Eu acho que uníssono ou mesmo Git / Mercurial / Bazaar pode ser uma escolha melhor para isso.
Um script bash seria extremamente difícil de fazer, já que a renomeação de um arquivo seria impossível de diferenciar da criação de um novo arquivo, que é o que você está usando com o rsync.
Se fosse eu, tentaria usar o Git ou o Mercurial. Isso provavelmente exigiria um treinamento adicional do usuário, mas seria realmente a melhor opção. Além disso, oferece o benefício do controle de versão para que você possa reverter os erros.