Existe algum utilitário unix como o ssh mas que também sincroniza a pasta atual com o servidor? [fechadas]


1

Eu seria realmente útil se pudesse fazer algo assim:

  1. ir em um dir local
  2. SSH para um host remoto
  3. O diretório local é sincronizado com o host remoto (local - & gt; remoto)
  4. execute o comando remotamente
  5. novamente sincronizar com os resultados (remoto - & gt; local)

Existe uma maneira de fazer isso com ferramentas padrão como o ssh ou um aplicativo que faz isso?


Quase parece que você está pedindo um processo de checkout / verificação como o Subversion ou o git
warren

Você já tentou usar o SSH para fazer isso? O que acontece quando você tenta? Agora, sua pergunta está solicitando que recomendemos um produto de software para fazer isso, e as perguntas de recomendação estão fora do tópico aqui no Superusuário porque o uso do software é uma questão muito preferencial, e o software que funciona hoje pode não funcionar amanhã. Remover a parte de recomendação da sua pergunta e focar no problema e na solução desejada tornaria essa uma boa pergunta.
music2myear

Respostas:


2

Você poderia olhar para sshfs - Montar um diretório via SSH em vez de transferir os arquivos para frente e para trás.

Nesse caso, você se conectaria ao servidor e montaria o diretório do seu PC. Você poderia então operar diretamente nos arquivos, antes de desmontar e desconectar.

Dependendo da rede, talvez seja necessário encaminhar a porta de escuta do servidor SSH local.

É FUSE, então não há necessidade de root / sudo.


Monte com:

sshfs user@host:/home/myuser/mydir ./mydir

Desmontar com:

fusermount -u ./mydir

2

Você pode usar rsync --rsh=ssh para as etapas 2 + 3, ssh para o passo 4, e rsync novamente para o passo 2 + 5.

Os parâmetros para rsync pode parecer um pouco complexo no início - mas você pode sempre testar com --dry-run primeiro.


1
Vale a pena notar que se o src / dest argumentos são um diretório, você pode obter um comportamento inesperado - eu sempre adiciono um / aos diretórios para obter um comportamento consistente que faça sentido para mim.
Attie

... também vale a pena fornecer um exemplo do padrão rsync -av ${SRC} ${DEST} uso.
Attie

1
@Attie Eu estava relutante em adicionar isso exatamente por causa dos problemas com os diretórios que você mencionou, e para desencorajar copiar e colar deste site ... ninguém deve fazer isso quando se trata de sincronizar arquivos :)
jvb

Justo :-)
Attie

0

Para a (s) parte (s) de sincronização da sua lista - desde que você deseja transferir bidirecionalmente - você também pode dar uma olhada uníssono , que é semelhante, mas diferente do rsync. Você pode executá-lo antes e depois de seu comando e manterá ambos os lados em sincronia.

Semelhante ao rsync:

  • transporte via SSH (assim como local e outros)
  • transferência diferencial sob o capô, se partes dos arquivos são as mesmas, elas não precisam ser transmitidas completamente, mas apenas as partes modificadas (ou diferentes) são transferidas e todo o arquivo é reconstruído no outro lado, muito útil para reduzir uso de largura de banda

Diferente do rsync:

  • precisa de unsion em ambas as extremidades - e é muito exigente sobre o número da versão uníssono
  • sincronização bidirecional: os arquivos de sincronização foram alterados desde a última sincronização de um lado para o outro, e ele detecta se ambos foram alterados e o ignora ou permite que você escolha
  • um textui e gui para uso interativo estão disponíveis, assim como um modo não interativo

Se você quiser tornar explícita a direção da cópia, eu também sugeriria o rsync, assim como o jvb in https://superuser.com/a/1219619/738892 - também começando com --dry-run (ou -n para breve) é muito útil. Atties comment about the slashes é importante: começar com -av para copiar o diretório (com saída - para ver o que acontece).

Você pode ou não querer usar --del e amigos, dependendo se você deseja excluir arquivos que desapareceram do SRC no DEST. Dependendo do seu caso de uso, --update (ignora arquivos que são mais recentes no DEST), maio ser útil para você.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.