Содержание:
Итак, вам понадобилось выкачать сайт с сервера на локалку, вы работаете под виндой, и хотелось бы использовать rsync, без долгих поисков неких аналогов или сторонних клиентов rsync.
Я пробовал 2 способа установки: через wsl и Git bash. О последнем и пойдёт речь в этом посте. Однако, нативная версия утилиты используется в обоих способах, к альтернативам не прибегаем.
Вкратце: качаем win-версию rsync и необходимые библиотеки, ставим в папку гита, запускаем git bash и работаем.
А теперь детали:
Сперва нужно скачать rsync и ее зависимости
Уже готовая сборка
Актуально на 21.07.2024, включает в себя:
- rsync 3.3.0
- libxxhash 0.8.2
- liblz4 1.9.4
- libzstd 1.5.6
- libopenssl 3.3.1
Скачать самостоятельно
Переходим на https://repo.msys2.org/msys/x86_64/ , качаем актуальные пакеты:
- rsync ( rsync-3.2.7-2-x86_64.pkg.tar.zst )
- libxxhash ( libxxhash-0.8.2-1-x86_64.pkg.tar.zst )
- liblz4 ( liblz4-1.9.4-1-x86_64.pkg.tar.zst )
- libzstd ( libzstd-1.5.5-1-x86_64.pkg.tar.zst )
- libopenssl ( libopenssl-3.2.0-1-x86_64.pkg.tar.zst )
Теперь, нам понадобится архиватор, т.к. эти пакеты упакованы в Zstandard.
Вариант 1 (проще и с графическим интерфейсом):
Сборка 7zip с его поддержкой, в данном случае никаких дополнительных телодвижений не потребуется https://github.com/mcmilk/7-Zip-zstd/releases
Качаем, устанавливаем, каждый архив из первого пункта открываем через «Открыть с помощью — Найти другое приложение на этом компьютере» и далее идём в папку, куда установили 7zip ( обычно C:\Program Files\7-Zip-Zstandard\ ) и открываем через 7zFM.exe . Содержимое архивов распаковываем во временную папку.
Вариант 2 (сложнее)
Качаем архиватор zstd и вручную распаковываем все архивы через консоль. Взять последнюю версию можно здесь https://github.com/facebook/zstd/releases/
Переходим в папку с гитом (C:\Program Files\Git) либо в любую другую, создаём папку для архиватора «_zstd». Распаковываем содержимое архива в неё. Сам архив можно удалить, он не понадобится.
Внутри создаём папку «src» — сюда поместим архивы, которые нужно распаковать.
Запускаем терминал из папки с архиватором. Командой «zstd -d src/*» распакуем архивы.
Переходим в src и видим уже привычные .tar-файлы. Открываем каждый, распаковываем из них файлы во временную папку.
Перемещаем распакованные файлы в папку гита
Переносим по принципу:
\usr\bin → C:\Program Files\Git\usr\bin
\usr\lib → C:\Program Files\Git\usr\lib
\usr\share → C:\Program Files\Git\usr\share
Готово, запускаем Git Bash и пользуемся rsync
Пользуемся, например, командой:
rsync --archive --verbose --progress --preallocate --no-owner --no-group login@host_or_ip:/path/to/source/ /c/Users/user/OpenServer/domains/example.ru/
или, если хотим пропускать существующие файлы и папку .git:
rsync -rvzl --update --ignore-existing --exclude=.git --progress --preallocate --no-owner --no-group login@host_or_ip:/path/to/source/ /c/Users/user/OpenServer/domains/example.ru/