Eu tenho um servidor de armazenamento em nuvem que gostaria de sincronizar com vários computadores. Eu tenho acesso via rsync, SFTP ou WebDAV, mas sem acesso ao shell. Então eu não posso executar o Unison no servidor. Minha primeira solução com lsyncd e cronjobs não estava sincronizando arquivos excluídos corretamente.
Eu finalmente encontrei a seguinte solução: Eu montei meu armazenamento em nuvem via sshfs em um ponto de montagem local / mnt / cloud e usei o Unison para sincronizar esse diretório com um diretório local ~ / cloud Eu corro em uníssono na inicialização (via /etc/rc.local) com a opção de repetição-watch. Para ter certeza de que ele continua em execução, eu mato todos os processos uníssonos e reinicio o Unison com um cronjob a cada 2 horas.
Isso funciona bem quando a montagem do sshfs está ativa. Parece que, se a conexão for interrompida, a montagem sshfs ainda estará no cache ou completamente vazia (o que resulta no Unison parando com um erro).
Minha pergunta: esta solução é segura quando a conexão é interrompida? Ou existe algum cenário em que uma conexão interrompida com a montagem sshfs possa resultar na exclusão de arquivos do Unison, porque ela não os encontra?
Existe uma maneira melhor de sincronizar de maneira confiável vários computadores (incluindo a exclusão de arquivos) se eu não tiver acesso shell ao servidor?