У меня есть три оконных блока, которые по-разному подключены к блоку linux в моей сети (один локальный по отношению к сети, один - ноутбук, может быть локальным или нет, а другой - мой рабочий стол). В настоящее время я использую git для синхронизации большинства моих вещей между блоками (используя Linux-сервер в качестве сервера), и он работает как чемпион.
Теперь, однако, я также хотел бы добавить свою коллекцию MP3 (12 гигов) для эффективной синхронизации между коробками. Сначала я думал, что могу использовать git для этого, но похоже, что rsync будет лучшим выбором, так как мне не нужны все исторические вещи. Поскольку все мои существующие сценарии управления выполняются в git bash (вместо cygwin), я бы хотел использовать его из git bash (MINGW32 - это то, что написано в строке заголовка окна). Могу ли я просто скачать его в Cygwin и скопировать или есть лучший способ приблизиться к нему? В Linux установлена последняя версия Ubuntu Server. Нужно ли что-то с ним делать, чтобы rsync правильно работал на нем?
Я понимаю, что, вероятно, делаю это немного сложнее, чем нужно, но я также использую это как упражнение для улучшения моих навыков командной строки. Какие-либо предложения?
Я могу использовать rsync из моей оболочки cygwin, но не из msysgit. Я попытался скопировать rsync.exe из папки bin cygwin в папку bin msysgit, но он по-прежнему не находит его. Есть ли какой-то другой шаг, который мне нужно сделать, чтобы установить его там? Странно, что я получаю сообщение об ошибке, что он не может найти файл, вместо того, чтобы дать мне сообщение об ошибке, что одна из зависимостей файла отсутствует.
rsync.exe
только различных версий rsync.pkg.tar.xz
. Это может быть хорошо, за исключением того, что я не могу установитьapt-get install xz-utils
(sudo apt-get install xz-utils
), потому что я не могу ни установитьsudo
ИЛИapt-get
в Git Bash для Windows :-( и, следовательно, не могу установитьxz-utils
. Есть ли способ обойти это? Есть более новая ссылка, где я могу получитьrsync.exe
, или каким образом я могу заставить Git Bash распаковать этот файлtar -xf rsync-3.1.3-1-x86_64.pkg.tar.xz
, я получаю кучу сообщений , заявив:Cannot open: Permission denied
,Cannot mkdir: Permission denied
,Cannot mkdir: No such file or directory
иCannot open: No such file or directory
для различных файлов / каталогов. Может быть, Git Bash уже знает, как распаковатьxz
файлы? Но не может б / э разрешений? Я не могу использовать или установитьsudo
. 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
папку.Я знаю, что вопрос не «Использование rsync для MSYS», но я думаю, что упоминание этого уместно:
«MinGW Shell» (ранее известный как «MSYS (Basic System)») действительно имеет rsync. Я использую эту оболочку / систему как можно чаще, поскольку она намного меньше, чем Cygwin. (Я, наверное, единственный, кто заботится о размерах файлов в наши дни.)
«Git для Windows» / «Git Bash» может легко добавить rsync, поскольку он основан на MinGW / MSYS и уже упоминался в списке рассылки ранее.
PS! Если в вашей оболочке MinGW нет rsync, просто запустите «mingw-get install msys-rsync», чтобы добавить его.
Обновлено 25 марта 2016 года:
Git для Windows теперь использует MSYS2. И MSYS2 использует «pacman», а не «mingw-get», для установки пакетов. К сожалению, «Git для Windows» не включает pacman ... Есть два варианта:
Последний вариант мой любимый, но он еще не оптимизирован, поэтому первый вариант, вероятно, проще. Надеюсь, это будет исправлено .
PS! Я мало играл с MSYS2 / pacman, но это выглядит очень многообещающе.
Обновлено 7 августа 2019 года:
Если вы используете Git для Windows (Git Bash), гораздо лучше просто получить пакет rsync из репозитория MSYS2 Package, как описано в ответе выше .
источник
$ mingw-get bash: mingw-get: command not found
pacman -S rsync
. Раньше я использовал CygWin, но я думаю, что MSYS2 - это круто, мне не нужно запускать графический интерфейс для установки дополнительных пакетов.Я предполагаю, что
git bash
вы действительно имеете в видуmsysgit
, иначе "мерзавец для окон". Опция меню Пускgit bash
, которая объясняет имя, которое вы использовали.Во-первых, вы правы, отклоняя git как вариант здесь. Одна из вещей , мерзавец ничего не делать хорошо обрабатывает двоичные файлы - и вы бы в конечном итоге с огромным, раздутый хранилище. Кроме того, поскольку вы не будете обрабатывать изменения, использование служебной информации git кажется мне излишним.
Во-вторых, это звучит так, как будто вы задаете вопрос: «Могу ли я использовать rsync из msysgit / Windows?» Краткий ответ, а не из коробки.
msysgit
на самом деле просто командная строка Windows с точки зрения формы и функции. При этом у вас есть два варианта: скачать сторонний инструмент для включения rsync на вашем компьютере с Windows ( Stack Overflow: Rsync для Windows ) или просто использовать cygwin. На самом деле, они имеют одинаковый результат - так что вам решать, какие из них работают лучше.источник
msysgit
- это командная строка Windows, которая поддерживает исполняемые файлы Windows. Вероятно, что он даже не может определить файл как исполняемый. Проще говоря, cygwin и msysgit не совместимы даже удаленно.cygiconv-2.dll
,cygwin1.dll
иrsync.exe
из Cygwin на ваш msysgit пути. Ничего другого (особенно не ssh.exe). Обычно проблема заключается в несовместимости между Git SSH и Cygwin / rsync SSH. Попробуйте сохранить ту же версию. У вас все еще будут проблемы с,/cygdrive/
но там у меня нет решения, кроме какcd
.Что бы это ни стоило, у меня были похожие проблемы с тем, чтобы cwRsync работал в msysgit при попадании в путь bin, но, попробовав много разных вещей, в конце концов обнаружил, что простое обновление до последней версии (2.10.2) Git для Windows исправило вопрос.
источник
rsync отлично подходит для однонаправленной синхронизации. Вы можете либо запустить rsync под Cygwin, либо для Windows также есть Deltacopy
Если вы хотите иметь двунаправленную синхронизацию, посмотрите на унисон
Для кросса инструмента синхронизации каталогов платформы, есть syncthing , который работает на большинстве платформ.
источник