Eu tenho:
um servidor Linux que eu conecto via SSH no IP 203.0.113.0 porta 1234
um computador doméstico (atrás de um roteador), IP público 198.51.100.17, que é Debian ou Windows+Cygwin
Qual é a forma mais fácil de ter uma pasta /home/inprogress/
sincronizada (em ambas as direções), um pouco como rsync
, mas com um observador do sistema de arquivos , para que cada vez que um arquivo seja modificado, ele seja imediatamente replicado no outro lado? (ou seja, não há necessidade de chamar manualmente um programa de sincronização)
Estou procurando uma solução de linha de comando / sem GUI, pois o servidor é sem cabeça.
Existe uma solução integrada Linux/Debian?
Após o comentário de @Kusalananda, finalmente passei algumas horas testando o Syncthing para este caso de uso e funciona muito bem. Ele detecta automaticamente as alterações em ambos os lados e a replicação é muito rápida.
Exemplo: imagine que você está trabalhando localmente
server.py
em seu software favorito do Bloco de Notas, você pressiona CTRL+S (Salvar). Alguns segundos depois, ele é replicado automaticamente no servidor distante (sem nenhuma caixa de diálogo pop-up).Uma grande coisa que notei é que você não precisa pensar no IP do computador doméstico e do servidor com o Syncthing: cada "dispositivo" (computador, servidor, telefone etc.) o ID com outro dispositivo, ele descobrirá automaticamente como eles devem se conectar.
Façam:
Lado do computador doméstico (Windows ou Linux):
Use a ferramenta de configuração normal do Syncthing no navegador
Lado VPS:
Primeiro conecte o VPS com um encaminhamento de porta:
A última opção redirecionará a ferramenta de configuração da web Syncthing do VPS que escuta na porta 8384 para a porta 8385 do computador doméstico.
Em seguida, execute isso no VPS:
Em seguida, no navegador do computador doméstico, abra http://localhost:8385 : esta será a configuração do Syncthing do VPS!
Outra solução que tentei:
SSHFS usando este tutorial . Observe que neste tutorial eles não usam sshfs-win, mas sim win-sshfs (estes são dois projetos diferentes). Eu tentei os dois e não consegui fazer nenhum deles funcionar (provavelmente um problema com a configuração do meu VPS).
Aqui está uma referência interessante também: https://softwarerecs.stackexchange.com/questions/13875/windows-sshfs-sftp-mounting-clients
Vantagens adicionais do Syncthing que acabei de notar:
você pode reduzir
fsWatcherDelayS
deconfig.xml
para segundos10
para2
que depois de fazer CTRL+S, 2 segundos depois (+o tempo de upload, ou seja, menos de 1 segundo para um pequeno arquivo de texto) esteja no outro computadorse você sincronizar dois computadores que estão na mesma rede local (apenas dando o DeviceID um ao outro, não há necessidade de se preocupar com endereços IP locais), ele notará automaticamente que não precisa transitar pela internet, mas pode negociar localmente. Isso é ótimo e permite uma transferência de velocidade muito rápida (4 MB/s!) sincronização de
phone <--> computer
ambos conectados ao mesmo roteador doméstico via WiFi... ! (meu ADSL é limitado a 100 KB/s no upload)Parece que o Unison deve fazer o trabalho.
Ele tem uma GUI opcional que pode facilitar a resolução de conflitos, mas tudo também pode ser feito usando uma interface de usuário baseada em texto. Você também pode predefinir como resolver conflitos para operação totalmente autônoma.
Há um componente de observador de arquivos (fsmonitor) para acionar uma sincronização sempre que necessário. Procure por "repeat watch" no manual para obter detalhes.
Parece que o Debian tem a versão correta (2.48+) pronta para uso .