AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 484434
Accepted
Basj
Basj
Asked: 2018-11-28 04:05:17 +0800 CST2018-11-28 04:05:17 +0800 CST 2018-11-28 04:05:17 +0800 CST

Sincronize uma pasta entre 2 computadores, com um observador de sistema de arquivos para que cada vez que um arquivo for modificado, ele seja imediatamente replicado

  • 772

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?

networking filesystems
  • 2 2 respostas
  • 5424 Views

2 respostas

  • Voted
  1. Best Answer
    Basj
    2018-11-28T07:34:33+08:002018-11-28T07:34:33+08:00

    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.pyem 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:

      ssh <user>@<VPS_IP> -L 8385:localhost:8384
      

      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:

      wget https://github.com/syncthing/syncthing/releases/download/v0.14.52/syncthing-linux-amd64-v0.14.52.tar.gz 
      tar xvfz syncthing-linux-amd64-v0.14.52.tar.gz
      nohup syncthing-linux-amd64-v0.14.52/syncthing &
      

      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 fsWatcherDelaySde config.xmlpara segundos 10para 2que 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 computador

    • se 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 <--> computerambos conectados ao mesmo roteador doméstico via WiFi... ! (meu ADSL é limitado a 100 KB/s no upload)

    • 24
  2. TooTea
    2018-11-28T04:28:38+08:002018-11-28T04:28:38+08:00

    Parece que o Unison deve fazer o trabalho.

    Unison é uma ferramenta de sincronização de arquivos para OSX, Unix e Windows. Ele permite que duas réplicas de uma coleção de arquivos e diretórios sejam armazenadas em hosts diferentes (ou discos diferentes no mesmo host), modificadas separadamente e atualizadas propagando as alterações de cada réplica para a outra.

    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 .

    • 18

relate perguntas

  • Um endereço IP pode terminar em 255 e não ser um endereço IP de transmissão?

  • Incapaz de identificar qual saída de endereço MAC do comando arp ou comando ip está correta

  • Roteador estranho funciona com centos 6 [fechado]

  • du/df e ls relatando diferentes usos de disco

  • Como os desenvolvedores do kernel Linux lidam com seu trabalho com milhões de linhas de código? É um método? [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve