J'ai trois boîtes Windows qui sont connectées à une boîte Linux sur mon réseau de différentes manières (l'une locale au réseau, l'une est un ordinateur portable et peut ou non être locale, et l'autre est mon bureau de travail). J'utilise actuellement git pour synchroniser la plupart de mes trucs entre les boîtes (en utilisant la boîte Linux comme serveur) et cela fonctionne comme un champion.
Maintenant, cependant, je voudrais également ajouter ma collection MP3 (12 concerts) pour être efficacement synchronisée entre les boîtes. J'ai d'abord pensé que je pouvais utiliser git pour cela, mais il semble que rsync serait un meilleur choix car je n'ai pas vraiment besoin de tous les trucs historiques. Étant donné que tous mes scripts de gestion existants s'exécutent sous git bash (au lieu de cygwin), j'aimerais pouvoir l'utiliser à partir de git bash (MINGW32 est ce qu'il dit dans la barre de titre de la fenêtre). Puis-je simplement le télécharger dans Cygwin et le copier ou existe-t-il une meilleure façon de l'aborder? La boîte Linux exécute la dernière version de l'édition d'Ubuntu Server - dois-je faire quoi que ce soit pour que rsync fonctionne correctement?
Je me rends compte que je fais probablement cela d'une manière un peu plus difficile que nécessaire, mais je l'utilise également comme un exercice pour améliorer mes compétences en ligne de commande. Aucune suggestion?
Je peux utiliser rsync depuis mon shell cygwin, mais pas depuis msysgit. J'ai essayé de copier rsync.exe du dossier bin de cygwin vers le dossier bin de msysgit, mais il ne le trouve toujours pas. Y a-t-il une autre étape que je dois faire pour l'installer là-bas? Il est étrange que j'obtienne une erreur indiquant qu'il ne trouve pas le fichier, au lieu de me donner une erreur indiquant qu'une des dépendances du fichier est manquante.
rsync.exe
seulement différentes versions de rsync dans les.pkg.tar.xz
formats. Cela peut être OK, sauf que je ne peux pas installerapt-get install xz-utils
(sudo apt-get install xz-utils
) car je ne peux ni installersudo
ORapt-get
sur Git Bash pour Windows :-( et donc ne peux pas installerxz-utils
. Y a-t-il un moyen de contourner cela? Y a-t-il un lien plus récent où je peux obtenirrsync.exe
, ou d'une manière ou d'une autre pour que Git Bash décompresse ce fichier .xz?tar -xf rsync-3.1.3-1-x86_64.pkg.tar.xz
, je reçois un tas de messages indiquant:Cannot open: Permission denied
,Cannot mkdir: Permission denied
,Cannot mkdir: No such file or directory
etCannot open: No such file or directory
pour divers fichiers / répertoires. Peut-être que Git Bash sait déjà comment décompresser desxz
fichiers? Mais ne peut pas b / e des autorisations? Je ne peux ni utiliser ni installersudo
. à Git Bash.cd / && tar Jxvf /c/Users/$USR/Downloads/rsync-3.1.3-1-x86_64.pkg.tar.xz
C:\Program Files\Git\usr\bin
dossier.Je sais que la question n'est pas "Utiliser rsync pour MSYS", mais je pense que mentionner cela est pertinent:
"MinGW Shell" (anciennement mieux connu sous le nom de "MSYS (Basic System)") a en effet rsync. J'utilise ce shell / système aussi souvent que possible car il est beaucoup plus petit que Cygwin. (Je suis probablement le seul qui se soucie de la taille des fichiers de nos jours.)
"Git pour Windows" / "Git Bash" pourrait facilement ajouter rsync car il est basé sur MinGW / MSYS et il a été mentionné plus tôt dans la liste de diffusion.
PS! Si votre shell MinGW n'a pas rsync, exécutez simplement "mingw-get install msys-rsync" pour l'ajouter.
Mis à jour le 25 mars 2016:
Git pour Windows utilise désormais MSYS2. Et MSYS2 utilise "pacman", pas "mingw-get", pour installer les packages. Malheureusement, "Git pour Windows" n'inclut pas pacman ... Il y a deux options:
La dernière option est ma préférée, mais elle n'est pas encore rationalisée, donc la première option est probablement plus facile. Espérons que ce sera corrigé .
PS! Je n'ai pas beaucoup joué avec MSYS2 / pacman, mais cela semble très prometteur.
Mise à jour le 7 août 2019:
Si vous utilisez Git pour Windows (Git Bash), il est préférable de simplement récupérer le package rsync à partir du référentiel de packages MSYS2, comme décrit dans la réponse ci-dessus .
la source
$ mingw-get bash: mingw-get: command not found
pacman -S rsync
. Dans le passé, j'utilisais CygWin mais je pense que MSYS2 est génial, je n'ai pas besoin d'exécuter une interface graphique pour installer des packages supplémentaires.Je suppose que
git bash
vous voulez vraiment diremsysgit
, alias "git pour windows". L'option du menu Démarrer estgit bash
, ce qui explique le nom que vous avez utilisé.Tout d'abord, vous avez raison de rejeter git comme option ici. Une des choses que git ne fait pas bien est la gestion des fichiers binaires - et vous vous retrouveriez avec un énorme référentiel gonflé. De plus, étant donné que vous ne gérerez pas les modifications, l'utilisation de la surcharge de git me semble exagérée.
Deuxièmement, cela ressemble à la question que vous posez réellement: "Puis-je utiliser rsync à partir de msysgit / Windows?" La réponse courte est, pas hors de la boîte.
msysgit
est vraiment juste la ligne de commande Windows en termes de forme et de fonction. Cela étant dit, vous avez deux options: télécharger un outil tiers pour activer rsync sur votre machine Windows ( Stack Overflow: Rsync pour Windows ), ou simplement utiliser cygwin. Vraiment, ils ont le même résultat - c'est à vous de décider lesquels fonctionnent le mieux.la source
msysgit
est la ligne de commande Windows, qui prend en charge les exécutables Windows. Ce qui se passe probablement, c'est qu'il n'est même pas capable de détecter le fichier comme exécutable. Autrement dit, cygwin et msysgit ne sont même pas compatibles à distance.cygiconv-2.dll
,cygwin1.dll
etrsync.exe
de Cygwin sur votre chemin de msysgit. Rien d'autre (surtout pas ssh.exe). Le problème est généralement une incompatibilité entre Git SSH et Cygwin / rsync SSH. Essayez de garder la même version. Vous aurez toujours des problèmes avec le/cygdrive/
mais là, je n'ai pas de solution sauf acd
.Pour ce que ça vaut, j'avais des problèmes similaires pour que cwRsync fonctionne dans msysgit lorsqu'il était déposé dans le chemin du bac, mais après avoir essayé beaucoup de choses différentes , j'ai finalement découvert que la simple mise à jour vers la dernière version (2.10.2) de Git pour Windows corrigeait le problème.
la source
rsync est idéal pour la synchronisation unidirectionnelle. Vous pouvez soit exécuter rsync sous cygwin, soit pour Windows il y a aussi Deltacopy
Si vous vouliez avoir une synchronisation bidirectionnelle, jetez un œil à l' unisson
Pour un outil de synchronisation d'annuaire multiplateforme, il y a synchronisation qui s'exécute sur la plupart des plates-formes.
la source