Existe-t-il un utilitaire unix comme ssh mais qui synchronise également le dossier actuel avec le serveur? [fermé]

1

Je serais vraiment utile si je pouvais faire quelque chose comme ça:

  1. aller dans un répertoire local
  2. SSH à un hôte distant
  3. Le répertoire local est synchronisé avec l'hôte distant (local -> distant)
  4. lancer la commande à distance
  5. synchroniser à nouveau avec les résultats (à distance -> local)

Y a-t-il un moyen de faire cela avec des outils standard comme ssh ou une application qui le fait?

utilisateur19203
la source
On dirait presque que vous demandez un processus de vérification / vérification comme Subversion ou Git
Does
Avez-vous essayé d'utiliser SSH pour le faire? Qu'est-ce qui se passe quand vous essayez? À l'heure actuelle, votre question demande que nous recommandions un logiciel pour le faire, et les questions de recommandation sont hors sujet ici dans Super utilisateur, car l'utilisation du logiciel est une question de préférence, et un logiciel qui fonctionne aujourd'hui risque de ne pas fonctionner demain. Supprimer la partie recommandation de votre question et vous concentrer sur le problème et la solution souhaitée en ferait une bonne question.
music2myear

Réponses:

1

Vous pourriez envisager de sshfs- monter un répertoire via SSH plutôt que de transférer les fichiers dans les deux sens.

Dans ce cas, vous devez vous connecter au serveur et monter le répertoire de votre PC. Vous pouvez ensuite opérer directement sur les fichiers avant de les démonter et de les déconnecter.

Selon le réseau, vous devrez peut-être transférer le port d'écoute de votre serveur SSH local.

C'est FUSE, il n'y a donc pas besoin de root / sudo.


Monter avec:

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

Démonter avec:

fusermount -u ./mydir
Attie
la source
2

Vous pouvez utiliser rsync --rsh=sshpour les étapes 2 + 3, sshpour l'étape 4 et à rsyncnouveau pour les étapes 2 + 5.

Les paramètres de rsyncpeuvent sembler un peu complexes au début - mais vous pouvez toujours tester avec d’ --dry-runabord.

jvb
la source
1
Il convient de noter que si les arguments src/ destsont un répertoire, vous risquez d’avoir un comportement inattendu - j’ajoute toujours une fin /aux répertoires pour obtenir un comportement cohérent qui a du sens pour moi.
Attie le
... vaut également la peine de fournir un exemple d' rsync -av ${SRC} ${DEST}utilisation standard .
Attie le
1
@Attie J'étais réticent à ajouter cela précisément à cause des problèmes avec les répertoires que vous avez mentionnés, et à décourager le copier-coller depuis ce site Web ... personne ne devrait jamais le faire lorsqu'il s'agit de synchroniser des fichiers :)
jvb
Assez bien :-)
Attie le
0

Pour les éléments de synchronisation de votre liste (puisque vous souhaitez effectuer un transfert bidirectionnel), vous pouvez également consulter unison , qui est similaire mais différent de rsync. Vous pouvez le lancer avant et après votre commande pour que les deux côtés restent synchronisés.

Similaire à rsync:

  • transport via SSH (ainsi que local et autres)
  • transfert différentiel sous le capot, si des parties des fichiers sont identiques, il n’est pas nécessaire de les transmettre complètement, mais seules les parties modifiées (ou différentes) sont transférées et le fichier complet est reconstruit de l’autre côté, ce qui est très utile pour réduire Utilisation de la bande passante

Différent de rsync:

  • besoin d'union des deux côtés - et il est très difficile sur le numéro de version à l'unisson
  • synchronisation bidirectionnelle: synchronise les fichiers modifiés depuis la dernière synchronisation d'un côté à l'autre - et il détecte si les deux ont été modifiés et l'ignore ou vous permet de choisir
  • un textui et un gui pour une utilisation interactive est disponible ainsi qu'un mode non interactif

Si vous voulez expliciter le sens de la copie, je vous suggère également rsync, comme jvb dans https://superuser.com/a/1219619/738892 - également commencer par --dry-run(ou -nen abrégé) est très utile. Les commentaires des commentaires sur les barres obliques sont également importants: commencez par -avcopier le répertoire (avec la sortie - pour voir ce qui se passe).

Vous pouvez ou non utiliser des --delamis, selon que vous souhaitez ou non supprimer les fichiers qui ont disparu du code SRC du DEST. Selon votre cas d'utilisation --update(ignore les fichiers les plus récents sur DEST), il peut vous être utile.

Stefan Moch
la source