Eu tenho:
um servidor Linux que eu conecto via SSH na porta IP 203.0.113.0 1234
um computador doméstico (atrás de um roteador), IP público 198.51.100.17, que é Debian ou Windows + Cygwin
Qual é a maneira mais fácil de /home/inprogress/
sincronizar uma pasta (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 replicado imediatamente do outro lado? (ou seja, não é necessário chamar manualmente um programa de sincronização)
Estou procurando uma solução de linha de comando / sem GUI, pois o servidor está sem cabeça.
Existe uma solução interna Linux / Debian?
syncthing
.lsync
, mas não sei se funciona de maneira útil para sincronização bidirecional.Respostas:
Após o comentário de @ Kusalananda, finalmente passei algumas horas testando o Syncthing neste caso de uso e ele funciona muito bem. Ele detecta automaticamente as alterações nos dois lados e a replicação é muito rápida.
Exemplo: imagine que você está trabalhando localmente
server.py
em seu software Notepad favorito e 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 e servidor doméstico com o Syncthing: cada "dispositivo" (computador, servidor, telefone etc.) tem um DeviceID exclusivo e, se você compartilhar 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 do 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 : essa será a configuração de Sincronização do VPS!
Outra solução que tentei:
SSHFS usando este tutorial . Observe que, neste tutorial, eles não usam sshfs-win, mas win-sshfs (esses são dois projetos diferentes). Tentei os dois e não consegui fazer nenhum deles funcionar (provavelmente um problema com a minha configuração do VPS).
Aqui também está uma referência interessante: /softwarerecs/13875/windows-sshfs-sftp-mounting-clients
Vantagens adicionais do Syncthing que acabei de notar:
você pode reduzir
fsWatcherDelayS
noconfig.xml
a partir10
de2
segundos para que depois de fazer CTRL + S, 2 segundos mais tarde (+ o tempo para upload, ou seja, menos de 1 segundo para um arquivo de texto pequeno) é no outro computadorse você sincronizar dois computadores que estão na mesma rede local (fornecendo apenas o DeviceID, não há necessidade de se preocupar com os endereços IP locais), ele notará automaticamente que não precisa transitar pela Internet, mas pode lidar localmente. Isso é ótimo e permite uma sincronização de transferência de velocidade muito rápida (4 MB / s!) Dos
phone <--> computer
dois conectados ao mesmo roteador doméstico via Wi-Fi ... ... considerando que ficaria preso a 100 KB / s no ADSL com uma sincronização do Dropbox ! (meu ADSL está limitado a 100 KB / s no upload)fonte
Parece que o Unison deve fazer o trabalho.
Ele possui 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 uma operação totalmente autônoma.
Há um componente observador de arquivos (fsmonitor) para disparar uma sincronização sempre que necessário. Procure "repetir o relógio" no manual para obter detalhes.
Parece que o Debian tem a versão correta (2.48+) empacotada imediatamente .
fonte