Rsync windows: Почему rsync не завоевал популярность в мире Windows? [закрыто]

Содержание

Rsync: копирование и синхронизация файлов с удаленным сервером

Утилиту Rsync можно использовать для копирования и синхронизации файлов и папок с локального сервера Linux на удаленный и наоборот. Rsync позволяет копировать ваши данные между серверами внутри защищенного SSH соединения. Так же, rsync, поддерживает сжатие данных на лету, что повышает производительность системы.

Чтобы исключить потерю информации при отправке файлов, rsync сначала копирует всю передаваемую информацию во временный файл. Другая важная особенность rsync – файлы передаются в один поток, не создается отдельный поток для каждого файла (что вызывает проблему при передаче большого количества маленьких файлов в других утилитах).

В данной статье мы рассмотрим варианты использования rsync для синхронизации и копирования каталогов и файлов, и приведем примеры его расширенных настроек.

Установка и основные параметр rsync

Установка rsync не отличается от установки, любого другого пакета. В CentOS пакет rsync присутствует в базовом репозитории и устанавливается через yum (или dnf в CentOS 8):

# yum install rsync -y

Синтаксис команды выглядит следующим образом:

# rsync опции источник приемник

В качестве источника и приемника можно указать локальную или удаленную директорию на другом сервере.

Опции:

  • -v – вывести подробную информацию о процессе
  • -c – проверка контрольных сумм файлов
  • -q – минимальная информация
  • -a – режим архивирования
  • -R – относительные пути
  • -y – не перезаписывать более новые файлы
  • -b – создание резервной копии
  • -l – копировать симлинки
  • -L – копировать содержимое ссылок
  • -H – копировать жесткие ссылки
  • -g – сохранять группу
  • -p – сохранять права для файлов
  • -t – сохранять время модификаций
  • -x – работать только в этой ФС
  • -e – использовать другой транспортный протокол (например, ssh)
  • -z – сжимать файлы перед передачей
  • —delete – удалять файлы которых нет в источнике
  • —exclude – исключить файлы
  • —recursive – перебирать директории рекурсивно
  • —no-recursive – отключить рекурсию
  • —progress – выводить прогресс передачи файлов
  • —stat – показать статистику передачи
  • —max-size – максимальный размер файла для передачи
  • —bwlimit — ограничение скорости для передачи файлов
  • —version – версия утилиты

Rsync: локальное копирование/синхронизация каталогов

Rsync можно использовать для копирования файлов между локальными директориями сервера. Если вам нужно скопировать файлы из одной директории в другую, выполните команду:

# rsync /var/www/html/package.zip /var/www/tmp/

В этом случае файл package.zip был просто скопирован в директорию /var/www/tmp/.

Можно добавить несколько опций для выполнения копирования. Например, чтобы перед выполнением копирования предварительно сжать файл, вывести подробную информацию и прогресс копирования файла, выполните:

# rsync -vz --progress /var/www/html/package.zip /var/www/tmp/

Вы можете использовать rsync для синхронизации содержимого локальных каталогов. Например, rsync удобно использовать, когда вам требуется скопировать файлы из рабочей директории, на хранилище, которое примонтировано к какому-то разделу. Несколько примеров команд:

# rsync -zvr /var/www/site /backup/

Мы скопировали директорию /var/www/site в директорию для резервных копий, опция -r позволила рекурсивно скопировать все вложенные директории и файлы.

Чтобы сохранить все атрибуты файлов при копировании, например, дату изменения и дату создания файлов, добавьте ключ -a:

# rsync -zvra /var/www/site /backup/

Если вы хотите скопировать только измененные файлы, добавьте опцию -c:

# rsync -zvrac /var/www/site /backup/

Я изменил только один файл и запустил команду. В результате в целевую директорию, был скопирован только измененный файл.

Очень удобно использовать такую опцию, если файлы меняются не часто. Таким образом вы экономите время на копирование/синхронизацию директории.

Чтобы не захламлять директорию для бэкапов, можно добавить опцию —delete, это позволит сравнить файлы с источником и в случае присутствия файла в целевой директории и отсутствие его в исходной директории, удалить его автоматически. Но призываю использовать данную опцию с осторожностью, так как если вы настроите копирование директории по крону, в случае сбоя или вмешательства из вне в рабочую директорию, с последующим удалением рабочих файлов, у вас затрется информация и в бэкапах, что не позволит вам восстановить ваши данные. Пример:

# rsync -zvrac --delete /var/www/site /backup/

Rsync: настройка синхронизации с удаленным сервером

Чаще всего копирование/синхронизация rsync с удаленным сервером используется для резервного копирования или синхронизации конфигурации нод кластера. Можно выполнять автоматическую синхронизацию данных с рабочего сервера на резервный, и в случае проблем на продуктивном севере быстро все перевести на резервный. Это довольно удобный и простой в настройке вариант.

В современных версиях rsync протокол SSH используется для передачи файлов по-умолчанию. Однако вы можете использовать и демон rsyncd. Для этого клиент rsync должен быть установлен на удаленном компьютере, и его демон добавлен в автозагрузку:

# systemctl enable rsyncd

Конфигурационный файл rsync — /etc/rsyncd.conf. В этом файле можно настроить параметры rsync и настройки для синхронизации для разных ресурсов.

Для синхронизации через демона rsync адрес удаленного сервера указывается так rsync://. Например:

# rsync -av /var/www/site/package.zip rsync://192.168.1.32/backup

Чтобы скопировать файл на удаленный сервер, используйте команду:

# rsync -az /var/www/site/package.zip root@IP:/backup/

Где IP, это адрес удаленного сервера. После запуска команды, удаленный сервер запросит пароль пользователя (если включена авторизация по паролю). Для автоматической авотризации нужно настроить SSH ключи.

Скопируем директорию с локального сервера на удаленный:

# rsync -zvra /var/www/site root@IP:/backup/

То есть, все тоже самое, что и с локальными директориями, только мы указываем адрес удаленного сервера.

Так же вы можете синхронизировать файлы и с удаленного сервера на локальный, команда для этого немного изменится:

# rsync -zvra root@IP:/backup/ /backup

Для принудительного использования SSH протокола для копирования файлов, укажите это в вашей команде (для выбора транспортного протокола копирования файлов используется опция –e):

# rsync -zvrae ssh root@IP:/backup/ /backup

Если удаленный SSH сервер имеет отличный от стандартного порт, его так же можно указать:

# rsync -zvrae "ssh -p 2222" root@IP:/backup/ /backup

Другие примеры использования rsync

Если в рамках сессии синхронизации вы передаете много информации и важно ограничить скорость передачи, задайте это дополнительной опцией –bwlimit (указывается скорость в КБ/с):

# rsync -zvra --bwlimit=100 /var/www/site root@IP:/backup/

При передаче файлов на удаленный сервер, вы можете ограничить максимальный размер файлов, которые нужно скопировать. Например, вы хотите скопировать все файлы, кроме файлов размером более 1 Мб:

# rsync -zvra --max-size='1m' /var/www/site root@IP:/backup/

Если у вас на сервере нужна односторонняя синхронизация и после переноса файлов на удаленный сервер нужно удалить файлы с исходного сервера, воспользуйтесь опцией —-remove-source-files:

# rsync -zvra --remove-source-files --progress /var/www/site/package.zip root@IP:/backup/

После выполнения команды, файл был скопирован на удаленный сервер и удален на источнике:

Так же очень удобный опции —include и —exclude, с помощью этих опций, можно делать исключения по копированию директорий или файлов:

# rsync -zvra --exclude=administrator/ /var/www/site root@IP:/backup/

В данном случае мы исключили директорию “administrator” при копировании на удаленный сервер.

# rsync -zvra --include='*.php' --exclude='*' /var/www/site/administrator/ root@IP:/backup/

Добавлением опции —include мы смогли задать фильтр по файлам, скопировали только файлы с расширением php.

Резервное копирование в Linux с помощью rsync

В своей рабое я часть использую rsync для автоматических задач резервного копирования в Linux. Можно написать простые bash скрипты или просто добавить команду rsync в cron и выполнять по расписанию.

Например, можно добавить в cron команду:

01 30 * * * rsync -zvra root@IP:/backup/ /backup

В резульатате каждый день в 1-30 ночи, будет выполняться синхронизация каталогов локального и удаленного серверов.

Стоит учесть, что для выполнения команды rsync на удаленном сервер через cron, желательно настроить авторизацию серверов по SSH ключу. Примеры скриптов для бэкапа, мы приводили в статье «Скрипты для бэкапа файлов из Linux в облако», там как раз используется rsync для копирования файлов в подключенные облачные хранилища.

Как настроить автоматическое резервное копирование/синхронизацию папки c компьютера под управлением ОС Windows на QNAP NAS через протокол Rsync?

Как правило, для резервного копирования или синхронизации данных отлично подходит программа NetBack Replicator, которую вы можете скачать с нашего сайта. В этом случае все задачи репликации будут создаваться и храниться на компьютере в настройках программы, а инициатором копирования является компьютер. Однако в некоторых случаях возникает потребность в том, чтобы процесс копирования запускался на самом сетевом хранилище. Тогда можно использовать встроенную в QNAP NAS службу репликации, которая работает по протоколу Rsync.

В данном примере мы рассмотрим настройки, необходимые для копирования папки D:\Documents\QNAP\RsyncTest на компьютере в папку /Public/RsyncTest/ на сетевом хранилище QNAP через протокол Rsync.

    1. Настройка Rsync-сервера cwRsyncServer на клиентском компьютере с ОС Windows:
        1. Скачайте сервер cwRsyncServer с сайта http://www.itefix.no/i2/node/10650;

        1. Установите на клиентский компьютер cwRsyncServer;

        1. Откройте файл конфигурации демона Пуск > Все программы > cwRsyncServer > 01. rsyncd.conf;

        1. Произведите следующие настройки:

          use chroot = false
          strict modes = false
          hosts allow = *
          log file = rsyncd.log

          [test]
          path = /cygdrive/d/Documents/QNAP/RsyncTest/
          read only = false
          transfer logging = yes
          UID = 0
          GID = 0
          !!! Обратите внимание, что параметр path принимает значение /cygdrive/d/Documents/QNAP/RsyncTest/

        1. Запустите утилиту для подготовки папки для работы с cwRsyncServer Пуск > Все программы > cwRsyncServer > 02. Prep a Dir for Upload и укажите вашу папку D:\Documents\QNAP\RsyncTest;

        1. Зайдите в Мой компьютер > Управление > Службы, найдите там службу RsyncServer, включите ее, установите запуск автоматически;

        1. Проверьте работоспособность сервера, зайдя по локальному адресу компьютера на порт 873 в браузере, например 192.168.1.33:873. Должны появиться следующие строки:
          @RSYNCD: 30.0
          @ERROR: protocol startup error

        1. На этом настройка Rsync-сервера на компьютере завершена.

 

    1. Настройка QNAP NAS:
        1. Подключитесь к устройству через SSH;

        1. Выполните команду:
          rsync -arv rsync://192.168.1.33/test /share/Public/RsyncTest/ —chmod=Doug+rwx,Foug+rw

        1. Проверьте результат копирования — содержимое папок на компьютере и на NAS’e должно быть одинаковым;

        1. Далее необходимо настроить расписание, по которому будет производиться синхронизация папок. Для этого потребуется отредактировать системные текстовые файлы, и для этого рекомендуется использовать редактор nano:
            1. Установите ipkg;  

            1. Перезайдите в командную строку;

            1. Чтобы установить nano, введите команды:ipkg update

            1. ipkg install nano

            1. Создайте скрипт, который будет добавлять записи в crontab
              nano -w /share/Public/rsyncInit.sh

            1. Добавьте туда следующие строки:
              #!/bin/sh
              tmpfile=/tmp/crontab.tmp
              crontab -l | grep -vi «rsync» > $tmpfile

              # add custom entries to crontab
              echo «51 9 * * * rsync -arv rsync://192.168.1.33/test /share/Public/RsyncTest/ —chmod=Doug+rwx,Foug+rw» >> $tmpfile

              #load crontab from file
              crontab $tmpfile

              # remove temporary file
              rm $tmpfile

              # restart crontab
              /etc/init.d/crond.sh restart


              !!! Обратите внимание на строку
              echo «51 9 * * * rsync -arv rsync://192.168.10.25/test /share/Public/RsyncTest/ —chmod=Doug+rwx,Foug+rw» >> $tmpfile
              Здесь выражение в кавычках будет добавлено в crontab. Оно будет иметь вид: 

              В нашем примере скрипт будет запускаться каждый день в 9:51 утра.

            1. Сохраните изменения Ctrl+O и выйдите из nano Ctrl+X;

            1. Сделайте файл /share/Public/rsyncInit.sh исполняемым:
              chmod +x /share/Public/rsyncInit.sh

            1. Запустите этот файл, чтобы проверить его работу:
              /share/Public/rsyncInit.sh

            1. Выполните команду
              crontab -l 
              и убедитесь в том, что нужная запись добавлена в crontab. Дождитесь нужного времени и проверьте, синхронизируются ли папки.

            1. Теперь можно добавить скрипт в автозагрузку устройства. Для этого выполните следующие команды:
              mount -t ext2 /dev/sdx6 /tmp/config
              nano -w /tmp/config/autorun.sh

              Добавьте туда следующий текст:

              #!/bin/sh
              /share/MD0_DATA/Public/rsyncInit.sh

              !!! Внимание: если используете Single Drive, а не RAID, то MD0_DATA замените на HDA_DATA

              Сохраните изменения и завершите настройку:

              chmod +x /tmp/config/autorun.sh
              umount /tmp/config

Настройка завершена.

 

KB-3149

Автоматизированное резервное копирование рабочих станций Windows при помощи rsync и vshadow — Часть 1

Если у вас возникло желание поддерживать рабочие станиции в максимально «защищённом» состоянии, а так же насколько возможно «автоматизировать» этот процесс, то этот пост для вас.

Будет использоваться:

Немного batch файла

Немного Linux сервера

Немного Windows Server 2008 R2 и Групповых политик

Идея в следующем — незаметно от самого юзера, чтобы не нарушать его работу, делать еженедельное копирование его профиля, дабы исключить потерю данных, и сохранять его на сервере в максимально защищённом виде.

Для этого начнём с клиентской части. Мы используем shadow volume create — expand, дабы исключить проблему нечитания открытых пользователем файлов, таких как Outlook pst, или документов. Нам понадобится набор от Microsoft, который содержит vshadow — это Volume Shadow Copy Service SDK 7.2, который можно бесплатно скачать с серверов Microsoft, http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23490.Нам понадобятся vshadow.exe и vshadow.pdb файлы из этого SDK. Внимание — они разные для 64-битных, и 32-битных систем.

После инсталляции их можно будет найти тут:

64-bit — %PROGRAMFILES%\Microsoft\VSSSDK72\TestApps\vshadow\bin\obj-chk\amd64

32-bit — %PROGRAMFILES%\Microsoft\VSSSDK72\TestApps\vshadow\bin\release-xp

Так же нам понадобится набор файлов из cwrsync под Windows — http://sourceforge.net/projects/sereds/files/cwRsync/4.2.0/cwRsync_4.2.0_Installer.zip/download

После инсталляции их можно будет найти тут:

%PROGRAMFILES%\cwRsync\bin

Складываем все файлы в одну папку, назовём её для удобства «Backup», и начинаем создавать файл, который будет запускать эту «машину смерти» — по факту, это простой batch файл, который будет отрабатывать все действия. Назовём его для удобства «backup.cmd»

Пишем в файл:

(неведома магия)

setlocal

if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK

set SOURCE_VOLUME=C:

set DESTINATION_VOLUME=O:

set CALLBACK_SCRIPT=%~dpnx0

set TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd

%~dp0\vshadow.exe -nw -p -script=%TEMP_GENERATED_SCRIPT% -exec=%CALLBACK_SCRIPT% %SOURCE_VOLUME%

del /f %TEMP_GENERATED_SCRIPT%

goto :EOF

:IS_CALLBACK

setlocal

call %TEMP_GENERATED_SCRIPT%

%~dp0\vshadow.exe -el=%SHADOW_ID_1%,%DESTINATION_VOLUME%

Эта часть «макаронного кода» делает shadow volume copy с C: и подключает её на O:, который мы и будем использовать для копирования, а потом тем же скриптом уберём. Теперь часть, которая отвечает за действия rsync:

(неведома магия)

setlocal

SET CWRSYNCHOME=C:\Backup\ (где папка с файлами rsync и vshadow)

SET CWOLDPATH=%PATH%

SET CYGWIN=nontsec

SET PATH=%CWRSYNCHOME%;%PATH%

SET HOME=С:\Backup\LOG\ (сюда будем сохранять логи)

SET RSYNC_PASSWORD=(тут пароль, который установлен на принимающем сервере rsync)

SET MY_NAME=%computername%

(теперь указываем, что копировать)

SET FS_SRC_HOME=»/cygdrive/O/Users/» (используем именно в таком формате, указываем папку до «Users»)

SET FS_SRC_BCK=»/cygdrive/C/Backup/» (где файлы rsync, чтобы положить их вместе с логами на бекап сервер)

del /q С:\backup\log\*.log (стираем старые логи перед запуском)

(запускаем)

rsync -av —chmod=ug=rwx %FS_SRC_B2% backupusr@hostname::sbackupusr/%MY_NAME%

rsync -avhP —inplace —stats —del —modify-window=1 —log-file=%FS_SRC_BCK%DATA/backupwork.log —exclude-from=%FS_SRC_BCK%DATA/exclude %FS_SRC_HOME% backupusr@hostname::sbackupusr/%MY_NAME%/snapshot/

rsync -av %FS_SRC_BCK% backupusr@hostname::sbackupusr/%MY_NAME%/snapshot/Backup/

Первой командой мы создаём директорию по имени компьютера %computername%

Второй командой мы копируем данные с временно подключенного диска O:\Users, с сохранением лог-файла.

Третьей командой мы копируем всю папку C:\Backup, для сохранности лога и самой программы.

Вот эта строка «backupusr@hostname::sbackupusr» — указывает на пользователя на принимающей стороне а так же хост принимающей стороны. (Будет рассмотрено во втором псто).

После этого нам необходимо отключить O: диск, так как если мы этого не сделаем, в следующий раз vshadow не сможет подключить туда копию, и копия будет делаться со старого O:\ диска всё время, не смотря на то, что файлы в папке пользователя уже давно изменились.

(неведома магия)

SET HOME=%HOMEDRIVE%%HOMEPATH%

VSHADOW.EXE -ds=%SHADOW_ID_1%

Это всё нужно сложить в обычный .cmd файл, как я уже указывал выше, сохранить его в папку Backup, где хранятся файлы rsync и vshadow, и запускать по мере надобности. Работает на Windows Vista, Windows 7, Windows XP, 32 и 64-bit

P.S: Конечно, будет необходимо поднять принимающую машину, в нашем случае на базе *nix, и создать разделы, которые будут защищены true-crypt в случае кражи сервера. Так же в дальнейшем эту папку можно запаковать в msi инсталлер для установки на все рабочие станции через Групповые Политики и использовать их же для создания Scheduled Tasks и закрытия доступа в Backup папку для юзера. Но это уже другая история.

использование rsync для синхронизация директорий и файлов

Программа Rsync ( во FreeBSD есть в портах ), используется для удаленного копирования (резервного копирования ) или синхронизации файлов и каталогов, с минимальными затратами трафика. Может практически целиком заменить cp и scp, умеет кодировать данные, поддерживает сжатие и рекурсию, кроме того, прерванные передачи можно с легкостью перезапустить. На страницах руководства, все описано довольно подробно.

Вот несколько примеров:

Копировать директорию с контентом:

# rsync -a /home/colin/ /backup/colin/
# rsync -a /var/ /var_bak/
# rsync -aR --delete-during /home/user/ /backup/      # Используется относительный путь (см. ниже)

То-же что и выше, только по сети и с компрессией. По-умолчанию, Rsync использует для передачи протокол SSH в том числе и с ключами, если таковые имеются. Символ «:» используется как в SCP. Типичный пример удаленного копирования:

# rsync -axSRzv /home/user/ user@server:/backup/user/

Исключить из процесса удаленного копирования, директорию tmp в /home/user/ и сохранить иерархию, удаленная директория будет иметь структуру /backup/home/user/. Данный пример типичен для резервного копирования:

# rsync -azR --exclude /tmp/ /home/user/ user@server:/backup/

Использовать 20022 порт для SSH:

# rsync -az -e 'ssh -p 20022' /home/colin/ user@server:/backup/colin/

Можно использовать демон rsync (с «::«), это гораздо быстрее, но трафик не шифруется. Местонахождение папки папки для резервного копирования (например /backup) можно настроить в файле /etc/rsyncd.conf. Переменная RSYNC_PASSWORD служит для того, что-бы избежать необходимости ввода пароля вручную.

# rsync -axSRz /home/ ruser@hostname::rmodule/backup/
# rsync -axSRz ruser@hostname::rmodule/backup/ /home/    # Копировать обратно

Некоторые важные опции:

  • -a, —archive режим архива; то-же что и -rlptgoD (без -H)
  • -r, —recursive обходить директории (рекурсия)
  • -R, —relative относительные пути
  • -H, —hard-links сохранять жесткие ссылки ( hardlink )
  • -S, —sparse handle sparse files efficiently
  • -x, —one-file-system не пересекать границы файловой системы
  • —exclude=PATTERN исключить файлы заданного образца
  • —delete-during приемник удаляется ПРИ ПЕРЕДАЧЕ
  • —delete-after приемник удаляется ПОСЛЕ ПЕРЕДАЧИ

winrsync

Под Windows, rsync можно использовать через cygwin или отдельным приложением cwrsync. Очень удобно для автоматизации резервного копирования. Установите ОДИН из вариантов и добавьте путь в системные переменные Windows: Control Panel -> System -> tab Advanced, button Environment Variables. Отредактируйте переменную «Path«, добавив полный путь до rsync, например так: C:\Program Files\cwRsync\bin или C:\cygwin\bin. Это позволит использовать rsync и ssh из командной строки Windows.

Авторизация по ключу

Rsync автоматически туннелируется через SSH протокол, а тот использует SSH авторизацию на сервере. Автоматическое резервное копирование используется для минимизации участия пользователя в этом процессе, как раз для этого и нужна авторизация по публичному ключу, что-бы не запрашивать у пользователя ввод пароля.
Все команды выполняются в командной оболочке Windows (Start -> Run -> cmd). Создайте и загрузите ключи, как описано в материале ]]>SSH, SCP]]>, «user» и «server» установите соответствующие.

# ssh-keygen -t dsa -N ''                   # Создаем ключи
# rsync user@server:.ssh/authorized_keys2   # Копируем файл ssh/authorized_keys2 на локальную машину
# cat id_dsa.pub >> authorized_keys2        # Или используйте редактор, что-бы добавить ключ
# rsync authorized_keys2 user@server:.ssh/  # Копируем файл обратно на сервер
# del authorized_keys2                      # Удаляем локальную копию

Теперь проверяем (одной строкой):

rsync -rv "/cygdrive/c/Documents and Settings/%USERNAME%/My Documents/" 'user@server:My\ Documents/'
Автоматизация резервного копирования

Планировка и выполнение задания резервного копирования, можно вполне возложить на какой-нибудь планировщик или пакетные файлы (Programs -> Accessories -> System Tools -> Scheduled Tasks). Например, можно создать такой файл, заменив «user@server» на свои:

@ECHO OFF
REM rsync the directory My Documents
SETLOCAL
SET CWRSYNCHOME=C:\PROGRAM FILES\CWRSYNC
SET CYGWIN=nontsec
SET CWOLDPATH=%PATH%
REM uncomment the next line when using cygwin
SET PATH=%CWRSYNCHOME%\BIN;%PATH%
echo Press Control-C to abort
rsync -av «/cygdrive/c/Documents and Settings/%USERNAME%/My Documents/» \
‘user@server:My\ Documents/’
pause

cwRsync cинхронизация файлов между Windows серверами

В процессе создания кластера стал вопрос: чем же можно обеспечить синхронизацию файлов и папок на отдельных узлах? После недолгих поисков всевозможных готовых решений наткнулся на известную утилиту, работающую под Unix – Rsync. У многих администраторов появилась необходимость синхронизировать каталоги между Unix-Windows серверами. Так получил жизнь проект cwRsynс. Суть этого проекта в том, что утилита Rsync запускается под Windows с помощью библиотеки cygwin.

В моем случае возможность взаимодействия с Unix серверами в перспективе очень радовала. Также отзывы админов о работе Rsync под Unix были очень положительными, и я решил попробовать.

В этой статье мы рассмотрим каким образом настраивается синхронизация жесткого диска с помощью cwRsynс.

В процессе создания кластера стал вопрос: чем же можно обеспечить синхронизацию файлов и папок на отдельных узлах? После недолгих поисков всевозможных готовых решений наткнулся на известную утилиту, работающую под Unix – Rsync. У многих администраторов появилась необходимость синхронизировать каталоги между Unix-Windows серверами. Так получил жизнь проект cwRsynс. Суть этого проекта в том, что утилита Rsync запускается по Windows с помощью библиотеки cygwin.

В моем случае возможность взаимодействия с Unix серверами в перспективе очень радовала. Также отзывы админов о работе Rsync под Unix были очень положительными, и я решил попробовать.

В этой статье мы рассмотрим каким образом настраивается синхронизация жесткого диска с помощью cwRsynс. Русскоязычных статей по работе с cwRsync я не нашел – все дружно копируют четыре шага по установке, и не касаются работы и настройки. Основную массу информации я черпал из http://rsync.samba.org, ведь параметры запуска для Rsync и cwRsync остаются одинаковыми.

Принцип синхронизации с помощью cwRsync состоит в следующем: на главном сервере (в нашем случае Сервер№1) запускается демон cwRsync при старте системы. В конфиге указывается к каким ресурсам будет даваться доступ. Клиент конфигурируется на втором сервере (Сервер№2). С определенной периодичностью на втором сервере запускается клиент, который соединяется с сокетом первого сервера, после чего происходит синхронизация. Взаимодействие происходит по локальным IP адресам:

Пример: Схема синхронизации cwRsync.

1. Установка cwRsync.
Для начала необходимо скачать и установить утилиту cwRsync. Установщик можно скачать отсюда.

Нужно выбрать последнюю версию. Перед установкой стоит убедиться, что совместима с конфигами старой версии.
Нам необходимо установить его на все узлы кластера. Процесс установки совсем прост: все значения можно оставить по умолчанию. cwRsync установиться в c:\Program Files\cwRsync\.

После установки можно выполнить следующие рекомендации:

• Добавте $CYGWIN_INSTALL_PATH/bin/ в переменную окружения PATH
Панель управления -> Система -> Дополнительно -> Переменные окружения
• Решите проблему с не-ascii символами. Т.е. нужно с www.okisoft.co.jp/esc/utf8-cygwin/ скачать файл cygwin.dll и заменить им тот, что идет в комплекте с cwRsync.
• Для того чтобы файлы с не-ascii смволами в имене нормально передавались, добавте —iconv=. в опции при вызове rsync.

У меня после установки проблем с кодировкой либо работой не наблюдалось. Также далее при конфигурировании я использовал прямые пути. Поэтому рекомендации можно не выполнять.

2. Работа с cwRsync на Сервер№1:
Для начала необходимо создать конфиг. файл. Создадим в c:\Program Files\cwRsync\bin\ папки conf и log. В папке conf создадим файл rsyncd.conf следующего содержания:

#### rsyncd.conf file ####
uid = user_id
gid = user_id
use chroot = false # Даём разрешение использовать все диски а не только C. Если мы
# установим в true, то rsync сможет обращатся только к диску С.
hosts allow = 192.168.1.6 # Разрешаем обращаться только с Сервер№2

[drive_c] # Метка диска С
path = /cygdrive/c/
comment = this is system drive
read only = true

[drive_d] #Метка диска Д
path = /cygdrive/d/
comment = this is date drive
read only = true
#transfer logging = yes
#### End of configuration file ####
use chroot = yes – запуск rsync в chroot, для пущей безопасности;
[drive_с] – название модуля;
uid – должен соответствовать id владельца каталога, в который мы собираемся записывать;
path – полный путь до каталога, в который будем записывать;
list = no – не показывать секцию [push] в листинге;
comment – комментарий;
read only = false – открыть секцию на запись;
hosts allow – разрешить доступ к секции push только для определённых адресов;
auth users = push – разрешить доступ только пользователю push;
secrets file – файл соответствия имени пользователя определённому паролю.

Примечание:

Мне так и не удалось заставить обменятся файлами клиент с сервером, если указать в path путь к папке. Если указать что-то типа path = /cygdrive/c/backup/ , клиент завершит работу ошибкой, а в логе появляется:
2009/01/06 13:27:35 [3748] name lookup failed for 127.0.0.1: Unknown server error
2009/01/06 13:27:35 [3748] connect from UNKNOWN (127.0.0.1)
2009/01/06 13:27:35 [3748] rsync: chdir / failed
: No such file or directory (2)
Зато когда указываешь имя папки в параметрах клиента, то всё работает.

Далее создадим bat файлы для запуска демона: создадим в папке conf файл rsync_server_start.bat с таким содержимым:

«C:\Program Files\cwRsync\bin\rsync.exe» —config «C:\Program Files\cwRsync\bin\conf\rsyncd.conf» —daemon —log-file «C:\Program Files\cwRsync\bin\log\rsyncservice.log» —address 192.168.1.5

—config rsyncd.conf – указываем, где находится файл конфигурации.
—daemon – запуск демона
—log-file – включение ведения лога
—address – указываем , какой адрес слушать

Полный перечень возможных параметров:

—daemon run as an rsync daemon
—address=ADDRESS bind to the specified address
—bwlimit=KBPS limit I/O bandwidth; KBytes per second
—config=FILE specify alternate rsyncd.conf file
—no-detach do not detach from the parent
—port=PORT listen on alternate port number
—log-file=FILE override the «log file» setting
—log-file-format=FMT override the «log format» setting
—sockopts=OPTIONS specify custom TCP options
-v, —verbose increase verbosity
-4, —ipv4 prefer IPv4
-6, —ipv6 prefer IPv6
-h, —help show this help (if used after —daemon)

После запуска демона появится окно Windows Firewall и процесс в менеджере задач.

Windows Firewall: Блокирование rsync демона.

Необходима нажать Unblock. Если всё работает нормально, то нужно добавить запуск bat файла в Планировщик Задач:

Планировщик задач: Запуск демона cwRsync при старте сервера.

Таким образом, сервер cwRsync будет запускаться при старте узла.

3. Работа с cwRsync на Сервер№2:
Установим cwRsync на Сервер№2. Создадим в c:\Program Files\cwRsync\bin\ папки bat и log. В папке bat создадим следующий файл с именем sync_all.bat. В этом файле создадим записи для синхронизации каждой необходимой папки. Следует включать исключения для папок с логами и статистикой. Вот общий вид строки.

«C:\Program Files\cwRsync\bin\rsync.exe» -av —delete —exclude ‘/logs/’ [email protected]::drive_c/Folder1/ «/cygdrive/c/Folder1/»>»C:\Program Files\cwRsync\bin\log\Folder1.log»

Необходимо сформировать подобные строки для каждой папки, и указывать их одна за одной в этом файле.

Примечание:

Можно запускать с ключом –n при пробном запуске. С этим ключом отображается весь процесс, но реальные копирование, удаление, изменения не производятся.

Каждая запись состоит из следующих частей
-a равносильно –rlptgoD
r — рекурсивный режим
l — пересоздание symlinks, это значит, что символические ссылки будут так же переноситься
p – перенос прав
t — передача времени модификации и его обновление на удаленной системе. Этот ключ должен быть установлен для точной синхронизации
g — установить группу конечного файла таким же, как и у исходного
o — установить владельца конечного файла таким же, как и у исходного
v — verbose. Вывод сообщений в терминал.
—delete — удаляет файлы, которых нет в источнике.
—exclude – указываем то, что синхронизировать не нужно.
user_id – uid, описанный на сервере
@192.168.1.5 – IP адрес сервера
::drive_d /Folder_sync1/ – Метка сервера и путь
«/cygdrive/d/Folder_sync1/» — куда
>»C:\Program Files\cwRsync\bin\log\Folder_sync1.log» — весь вывод в файл
Обратите внимание на последний слеши в путях, так как они имеют значение для rsync. Если на конце исходной директории стоит «/», то это означает копирование содержимого директории; отсутствие слеша означает копирование директории и ее содержимого.
Если не указать /, то на клиент в папке создастся папка с файлами. Иначе просто её содержимое.
При первом запуске синхронизации на Cервер№2, также появится сообщения от брандмауэра Windows о блокировании Rsync. Необходимо нажать Unblock.
Вот список всех допустимых параметров:

-v, —verbose increase verbosity
-q, —quiet suppress non-error messages
—no-motd suppress daemon-mode MOTD (see caveat)
-c, —checksum skip based on checksum, not mod-time & size
-a, —archive archive mode; equals -rlptgoD (no -H,-A,-X)
—no-OPTION turn off an implied OPTION (e.g. —no-D)
-r, —recursive recurse into directories
-R, —relative use relative path names
—no-implied-dirs don’t send implied dirs with —relative
-b, —backup make backups (see —suffix & —backup-dir)
—backup-dir=DIR make backups into hierarchy based in DIR
—suffix=SUFFIX backup suffix (default ~ w/o —backup-dir)
-u, —update skip files that are newer on the receiver
—inplace update destination files in-place
—append append data onto shorter files
—append-verify —append w/old data in file checksum
-d, —dirs transfer directories without recursing
-l, —links copy symlinks as symlinks
-L, —copy-links transform symlink into referent file/dir
—copy-unsafe-links only «unsafe» symlinks are transformed
—safe-links ignore symlinks that point outside the tree
-k, —copy-dirlinks transform symlink to dir into referent dir
-K, —keep-dirlinks treat symlinked dir on receiver as dir
-H, —hard-links preserve hard links
-p, —perms preserve permissions
-E, —executability preserve executability
—chmod=CHMOD affect file and/or directory permissions
-A, —acls preserve ACLs (implies -p)
-X, —xattrs preserve extended attributes
-o, —owner preserve owner (super-user only)
-g, —group preserve group
—devices preserve device files (super-user only)
—specials preserve special files
-D same as —devices —specials
-t, —times preserve modification times
-O, —omit-dir-times omit directories from —times
—super receiver attempts super-user activities
—fake-super store/recover privileged attrs using xattrs
-S, —sparse handle sparse files efficiently
-n, —dry-run perform a trial run with no changes made
-W, —whole-file copy files whole (w/o delta-xfer algorithm)
-x, —one-file-system don’t cross filesystem boundaries
-B, —block-size=SIZE force a fixed checksum block-size
-e, —rsh=COMMAND specify the remote shell to use
—rsync-path=PROGRAM specify the rsync to run on remote machine
—existing skip creating new files on receiver
—ignore-existing skip updating files that exist on receiver
—remove-source-files sender removes synchronized files (non-dir)
—del an alias for —delete-during
—delete delete extraneous files from dest dirs
—delete-before receiver deletes before transfer (default)
—delete-during receiver deletes during xfer, not before
—delete-delay find deletions during, delete after
—delete-after receiver deletes after transfer, not before
—delete-excluded also delete excluded files from dest dirs
—ignore-errors delete even if there are I/O errors
—force force deletion of dirs even if not empty
—max-delete=NUM don’t delete more than NUM files
—max-size=SIZE don’t transfer any file larger than SIZE
—min-size=SIZE don’t transfer any file smaller than SIZE
—partial keep partially transferred files
—partial-dir=DIR put a partially transferred file into DIR
—delay-updates put all updated files into place at end
-m, —prune-empty-dirs prune empty directory chains from file-list
—numeric-ids don’t map uid/gid values by user/group name
—timeout=SECONDS set I/O timeout in seconds
—contimeout=SECONDS set daemon connection timeout in seconds
-I, —ignore-times don’t skip files that match size and time
—size-only skip files that match in size
—modify-window=NUM compare mod-times with reduced accuracy
-T, —temp-dir=DIR create temporary files in directory DIR
-y, —fuzzy find similar file for basis if no dest file
—compare-dest=DIR also compare received files relative to DIR
—copy-dest=DIR … and include copies of unchanged files
—link-dest=DIR hardlink to files in DIR when unchanged
-z, —compress compress file data during the transfer
—compress-level=NUM explicitly set compression level
—skip-compress=LIST skip compressing files with suffix in LIST
-C, —cvs-exclude auto-ignore files in the same way CVS does
-f, —filter=RULE add a file-filtering RULE
-F same as —filter=’dir-merge /.rsync-filter’
repeated: —filter=’- .rsync-filter’
—exclude=PATTERN exclude files matching PATTERN
—exclude-from=FILE read exclude patterns from FILE
—include=PATTERN don’t exclude files matching PATTERN
—include-from=FILE read include patterns from FILE
—files-from=FILE read list of source-file names from FILE
-0, —from0 all *from/filter files are delimited by 0s
-s, —protect-args no space-splitting; wildcard chars only
—address=ADDRESS bind address for outgoing socket to daemon
—port=PORT specify double-colon alternate port number
—sockopts=OPTIONS specify custom TCP options
—blocking-io use blocking I/O for the remote shell
—stats give some file-transfer stats
-8, —8-bit-output leave high-bit chars unescaped in output
-h, —human-readable output numbers in a human-readable format
—progress show progress during transfer
-P same as —partial —progress
-i, —itemize-changes output a change-summary for all updates
—out-format=FORMAT output updates using the specified FORMAT
—log-file=FILE log what we’re doing to the specified FILE
—log-file-format=FMT log updates using the specified FMT
—password-file=FILE read daemon-access password from FILE
—list-only list the files instead of copying them
—bwlimit=KBPS limit I/O bandwidth; KBytes per second
—write-batch=FILE write a batched update to FILE
—only-write-batch=FILE like —write-batch but w/o updating dest
—read-batch=FILE read a batched update from FILE
—protocol=NUM force an older protocol version to be used
—iconv=CONVERT_SPEC request charset conversion of filenames
—checksum-seed=NUM set block/file checksum seed (advanced)
-4, —ipv4 prefer IPv4
-6, —ipv6 prefer IPv6
—version print version number
(-h) —help show this help (see below for -h comment)

После этого необходимо добавить бат файл в Планировщик Задач с запуском через каждые 10-20 минут либо другой, необходимый промежуток времени.

Настройка rsync-сервера и использование rsync-клиента. Описание rsync в Windows

Добрый день! Возникла проблема: Никак не могу скопировать файлы с сервера на локальный компьютер под Windows. Пробовал так: Нахожусь на сервере, в папке с сайтами. Пишу такую команду: rsync -czavP сайт_1 localhost:Z:/home/сайт_1/ . Либо пишет, что пароль неправильный, либо запрашивает пароль к локальной машине, которого у меня на самом деле нет. В чем беда? Буду благодарен за помощь)Дмитрий

Что такое rsync?

Во-первых, rsync это утилита использующася только в Linux-системах. Для того, чтобы она работала в windows, её нужно устрановить там и настроить, например через cygwin. Во-вторых, почему вы пытаетесь отправлять файлы на localhost ? Localhost — это внутренний адрес-петля 127.0.0.1. При попытке отправить файлы туда, находясь в linux, вы пытаетесь подключиться с сервера на самого себя, т.е на сам сервер.

Как сделать синхронизацию папки c Linux на Windows?

Для того чтобы отправить файлы в windows c помощью rsync самый лучший способ — это смонтировать файловую систему локального windows-компьютера на сервер через по smb. Тогда не потребуется устанавливать rsync на сам Windows и это решает проблему с доступом между сервером и домашним компьютером.

Для этого нужно подключаясь к серверу с локального компьютера сделать . Пробрасывать нужно localhost:445. Затем, нужно чтобы в системе на сервере был установлен пакет cifs-utils. Расшариваете на локальном компьютере нужную папку, затем создаете точку монтирования на сервере, и монтируете туда уже c localhost. Кстати, на нашем сайте есть генератор-скриптов для бэкапов сайта, и в нем реализована генерация такого скрипта.

Пример скрипта для синхронизации папок

Давайте посмотрим на примере такого скрипта подобное копирование:

Start /b d:plink.exe -pw rootpassword [email protected] -N -R 445:localhost:445
d:plink.exe -pw rootpassword [email protected] -C «mkdir /tmp/win&&mount -t cifs -o rw,nounix,soft,intr,username=user,password=windowspass //localhost/backup /tmp/win»
d:plink.exe -pw rootpassword [email protected] -C «rsync -a —no-p —no-o —no-o —no-t /var/www/example.com/ /tmp/win && umount /tmp/win&&rmdir /tmp/win»
taskkill /f /im plink.exe

В первой строке запускаем в фоне программу plink.exe (консольный ssh-клиент для Windows). Подключаемся на удаленный сервер example.com и туннелируем порт 445 с локальной машины на lo-интерфейс сервера. После подключения по ssh сервер будет «думать», что у него на localhost:445 есть windows-шара или запущен smb, сервер.

start /b d:plink.exe -pw rootpassword [email protected] -N -R 445:localhost:445

Здесь мы создаем точку монтирования, и монтируем расшаренную папку в созданную точку. После этого на сервере в созданной точке будет доступна файловая система локального компьютера. Сервер при этом «думает» что эта папка находится физически на нем самом. Соответственно он может выполнять любые операции над ней, запись и удаление файлов, так, как будто это его собственная папка.

d:plink.exe -pw rootpassword [email protected] -C «mkdir /tmp/win&&mount -t cifs -o rw,nounix,soft,intr,username=user,password=windowspass //localhost/backup /tmp/win»

Ну и здесь мы выполняем непосредственно синхронизацию папки сайта в эту папку. Все файлы отправляются на локальный компьютер, за это отвечает монтирование шары и туннель. Команде rsync передаем опции не сохранять атрибуты файлов — владельца и права, поскольку windows всё равно ничего не знает о таких атрибутах и не умеет с ними работать. По окончании синхронизации отмонтируем локальную шару от сервера.

d:plink.exe -pw rootpassword [email protected] -C «rsync -a —no-p —no-o —no-o —no-t /var/www/example.com/ /tmp/win && umount /tmp/win&&rmdir /tmp/win»

Здесь мы «убиваем» SSH-cессию, запущенную в фоне в самом начале.

taskkill /f /im plink.exe

Если вы поймете как это работает, то сможете аналогично использовать это на своих серверах. Или просто сделайте скрипт через наш (вкладка rsync для бэкапа файлов) со своими данными и запустите его. Перед этим установите cifs-utils на сервер.

Решение для резервного копирования, основанное на реализации rsync для Windows
, используют популярную технологию синхронизации файлов и папок , находящихся в разных местах сети, с минимальным объёмом передаваемых данных.

Технология Rsync бэкапа

Название технологии копирования rsync (remote synchronization)
– дословно: «удалённая синхронизация». Она изначально разрабатывалась, как приложение для Unix. Существует аналог rsync для Windows, cwrsync
. Итак, каковы же преимущества резервного копирования rsync для бэкапа и синхронизации в Windows?

Rsync примеры использования в Handy Backup Server Network

Версия помогает производить бэкап рабочих станций удалённо по сети так, что необходим всего один человек – администратор сети, который управляет всем процессом резервного копирования удалённо, не прерывая работы пользователей.

Скачать

Купить!

Версия 8.0.4
от 10 июля 2019. 104 MB

Программа резервного копирования
Handy Backup.
27800
RUB

за лицензию

Handy Backup Network Server

С помощью этой версии программы, Вы сможете управлять бэкапом удаленных рабочих станций по сети. Бесплатный полнофункциональный пробный период — 30 дней!

Скажем, у Вас есть две рабочие станции в сети, которые вы хотите синхронизировать. Бэкап с помощью rsync для Windows позволяет пересылать лишь данные, различающиеся в конкретных папках на двух машинах, значительно экономя таким образом время работы.

На первый взгляд может показаться, что это обычный инкрементальный или дифференциальный бэкап , однако, это, на самом деле, существенно разные вещи, поскольку стандартный бэкап не умеет вычислять, передавать и «приклеивать» лишь разницу в синхронизируемых данных, а всегда переписывает файлы при совпадении имён.

Таким образом, минимизируется поток данных при синхронизации двух папок . Поэтому мы получаем также и меньшее время обработки операции при прочих равных условиях. Пользуясь стандартным оборотом «Время-деньги», получаем, что в каком-то смысле мы уменьшаем и финансовые затраты на бэкап с помощью копирования файлов Rsync.

Инкрементальный бэкап при помощи rsync в сетях Windows-Unix: за и против

Давайте посмотрим внимательнее на программный бэкап при помощи rsync. Обратим внимание на наиболее интересные ситуации. Предположим, что у нас теперь смешанная сеть ОС Windows-Unix.

Основываясь на том, что мы уже неплохо усвоили про rsync сервер, саму эту технологию и резервное копирование с её помощью, мы можем вывести несколько замечательных преимуществ: быстрый инкрементальный бэкап и восстановление, сокращение использования оперативной памяти и ресурсов сети. И вишенка на тортик: это именно тот функционал, который позволяет производить бэкап Linux серверов и рабочих станций так же просто, как и с Windows.

Существует и ряд возможных проблем использования rsync в Windows
:

  • Неопределённость с поддержкой 64-битных серверных платформ;
  • Нестабильность в процессе длительной обработки большого объёма информации;
  • Необходимость настройки приложения для каждой конкретной задачи.

Последний пункт можно было бы автоматизировать, однако, проблема состоит в том, что нет универсальных рецептов настройки для всех серверов и всех типов данных.

Таким образом, мы понимаем, что, возможно, использование оригинальной утилиты rsync для Windows не спасёт положение, однако, можно просто попытаться адаптировать алгоритм rsync для конкретного приложения Windows.

Планы расширения технологии Rsync Windows в программе Handy Backup

В настоящее время разработчики программного обеспечения Handy Backup уделяют большое внимание технологии копирования Rsync, активно внедряя её в такие прикладные операции, как:

В настоящее время команда разработчиков Handy Backup работает над применением rsync для бэкапа
по сети с нескольких контрольных точек. Умный функционал нашей программы позволит вам управлять удалёнными рабочими станциями с практически любой машины в сети, если только вы имеете права доступа (не забываем про безопасность!).

Разработчики Handy Backup внедрили функционал для бэкапа Rsync Windows и Linux
компьютеров, и список возможностей постоянно расширяется! А что, если бы вы могли управлять всей сетью с мобильного устройства Android? Или делать бэкап карты памяти телефона как рабочей станции вашей локальной сети? Нравится идея? Тогда вам понравятся и релизы Handy Backup, работающие на алгоритме rsync backup для Windows от Новософт.

Supported platforms: Vista/2008(R2)/7/8/2012(R2)/10/2016

cwRsync comes as a zip archive containing a package. Unzip downloaded file and run cwRsync_x.x.x_Installer.exe
or cwRsync_Server_x.x.x_Installer.exe
(server version) :

  1. Click Next at Welcome-page
  2. View license agreement.
  3. Select components that varies depending on package type: Client package has an optional component (Secure Channel Wrapper & Wizard
    ). It makes creation of secure channels to cwrsync servers an easy task.
  4. Specify an installation location.
  5. (cwRsyncServer only
    ) Specify a service account.
  6. Installation starts. By clicking «Details» button, you can get more detailed information about installation. Check if everything seems ok.

You»re DONE! cwRsync is installed on your machine.

cwRsync server only

You should update the configuration file
according to your needs. If you have defined uploadable modules (read only = false), you have to make sure that Rsync Server has correct permissions on directories behind those modules. You can use Prep a Dir for Upload
wizard from the start menu for that purpose.

cwRsync installs rsync server as a service (RsyncServer
) with following parameters:

—config rsyncd.conf —daemon —no-detach

Default start mode is manual.

Usage

With the following features is available from the start menu:

  • Specify sources and destination (local, remote ssh and daemon modes)
  • Specify filters and a subset of options
  • Create rsync command according to your specification
  • Run rsync on the fly both in production and test mode
  • Create batch files for task scheduling
  • Save and load your favorite rsync settings as profiles
  • Language localization

Client installation includes also a batch file starting rsync in a right environment. You can customize it according to your needs. Man pages in html format are also available from start menu. cwRsync FAQs from this site can also be helpful.

Решил я всё же добить возможность копирования rsync-ом из-под винды на линукс. Не, ну в самом деле, что за издевательство — такой удобный способ и недоступен!

За основу взял DeltaCopy — cygwin-порт самого rsync и нескольких дополнительных утилит плюс графическая обвязка как для клиента, так и для сервера. GUI-вая часть меня пока не интересует, а вот rsync/win решил испытать. Сразу уточню: есть и другие порты, но их я не проверял и не пробовал.

Особенности

Задавать имя входного каталога на системе с windows лучше в формате /cygdrive/БУКВА/путь
, где «буква» — буква диска без двоеточия, например: /cygrive/c/windows
.

Windows имеет дурную привычку хранить имена файлов в разных кодировках — и юникод и 1251 и 866, в общем, полный бардак. Юниксы давно перебрались на utf-8 и не заставляют своих пользователей париться по этому поводу.

Rsync из DeltaCopy не поддерживает копирование виндовых ACL и есть какие-то странности с копированием других расширенных атрибутов. Но в моем конкретном случае это не критично, потому не заморачивался уточнениями.

Грабли

Первые грабли, на которые я наступил, это трансляция имён файлов, написанных не латиницей. Порылся в интернетах, где мне напомнили, что есть параметр —iconv=код_из,код_в
, позволяющий указать характеристики трансляции
«код_из» — из какой кодировки преобразуем, «код_в» — в какую. Для копирования с windows на linux получаем —iconv=cp866,utf-8
.

Вторая грабля — неожиданное прекращение копирования при указании параметра iconv. Сообщение на отправляющей стороне было совсем невразумительным. А вот в протоколе на самом сервере ситуация немного прояснилась: «rsync: The server is configured to refuse —iconv
«. Вот те на! Что за нафиг такой?
Вылечилось, опять же, по советам из этих ваших интернетов, добавлением строки charset=utf-8
в /etc/rsyncd.conf
.

Всякое разное

Для большей безопасности, я создал в конфиге rsync-а несколько «модулей» — секций, описывающих разные места для копирования и доступы к ним. Пример такого модуля:

path = /media
use chroot = yes
lock file = /var/lock/media-restore.lock
read only = no
timeout = 600
auth users = восстановитель
uid=root

Это имя модуля. Оно указывается в команде отправки:
… пользователь@сервер_rsync::media/путь

Пользователи вместе с их паролями задаются в файле, описанном в конфиге параметром
secrets file = /etc/rsyncd.secrets

Формат файла: каждый пользователь на отдельной строке в виде логин:пароль
, например «восстановитель:пароль_восстановления
«. В конце файла желательна пустая строка.

path
— путь в файловой системе сервера
use chroot
крайне желательно

во избежание злоупотреблений с путями типа модуль/путь/../../запретная_зона

lock file
— служебный файл, создаваемый при обработке операций в этом модуле.
auth users
— можно задать не только глобальный список разрешенных пользователей, но и для каждого модуля указывать отдельные разрешения. В примере я не хочу, чтобы к модулю
получил доступ какой-нибудь другой пользователь
uid
— идентификатор пользователя, от имени которого выполняются операции. Сам демон rsync обычно запускается от рута, поэтому проблем с мимикрированием быть не должно. Дополнительно см. описание параметра —super
.

Постановка задачи. Один из компьютеров в реальном масштабе времени синхронизирует важные данные на облако Диск.Яндекс. Для гарантии сохранения этого набора данных они должны быть переданы на облако MEGA. При этом резервная копия должна быть идентична источнику. Аппаратные мощности компьютера с источником данных не позволяют одновременно запустить 2 сеанса синхронизации данных в реальном масштабе времени (Диск.Яндекс и MEGA), так как на компьютере с источником данных производится одновременная работа с 10-15 файлами офисного ПО Microsoft Office.

Реализация решения возложена на компьютер c большими аппаратными возможностями, функционирующий под управлением Linux Mint.

Для получения идентичной копии данных источника владелец аккаунта Диск.Яндекс предоставил синхронизируемые данные в доступ другому аккаунта Диска.Яндекс. При этом для исключения непреднамеренного удаления данных доступ предоставлен уровнем «только чтение».

В комплект поставки дистрибутива Linux Mint включено ПО резервного копирования rsync. В целях более удобной настройки синхронизации каталогов через rsync дополнительно была установлена графическая оболочка управления – пакет grsync, представляющий из себя GTK+ frontend для rsync.

После установки grsync запускается уже с русскоязычным интерфейсом.


По умолчанию предлагается настроить задание под именем «default». Но кнопкой + (Добавить) можно создать задание с желаемым именем.

Настройки сессии условно разделены на 3 категории: основные, расширенные и дополнительные.

В основных опциях указываются каталог источника и каталог назначения в порядке сверху вниз.

Далее следуют настройки, относящиеся к назначаемому заданию синхронизации.

При необходимости иметь идентичную копию данных источника необходимо установить галочку в поле «Удалить на приёмнике». В противном случае при удалении файла или каталога в источнике данных на приёмнике подлежащий удалению контент останется без изменений, то есть не будет удалён.

Так как каталог-источник является копией данных с уровнем доступа «только чтение», а клиент синхронизации с облаком MEGA создаёт в синхронизируемом каталоге компьютера скрытый каталог.debris, то при выполнении задания синхронизации каталогов его необходимо исключить (в каталоге-источнике каталог.debris будет отсутствовать). Если этого не сделать, то в процессе синхронизации в каталоге-получателе каталог.debris будет удалён.

Что из себя представляет каталог.debris и для чего он нужен .

В опциях grsync настройки исключения каталогов не предусмотрено. Для указания исключения каталога из синхронизации в поле «Дополнительные опции» раздела «Расширенные опции» необходимо вписать строку —exclude «.debris»

Для описываемой задачи в разделе «Дополнительные опции» никаких изменений вносить не требуется.

После внесения настроек в задание можно запустить его текст или выполнение, для чего нажать кнопку главного меню: «Симуляция» или «Выполнить».

Передача от Windows до Linux с rsync

нуб здесь,

Я пытаюсь перенести файл с помощью rsync из windows в linux.
У меня есть этот код, но я получаю ошибку

rsync -avz -e ssh C:\users\file.txt [email protected]:/var/dir

Я получаю эту ошибку источник и назначение не могут быть одновременно удаленными

А если я попробую

rsync -avz -e ssh /c/users/file.txt [email protected]:/var/dir

Я получаю, нет такого файла или каталога

Итак, я думаю, что проблема заключается в пути к файлу на windows.. Я слышал о cygwin, но на самом деле не пробовал

Что я могу сделать, чтобы заставить путь работать?

windows

linux

rsync

transfer

Поделиться

Источник


andrewk    

15 ноября 2010 в 07:28

2 ответа


  • rsync получить от mac до linux: замена толстой кишки

    Я делаю резервную копию данных от linux до rsync с удаленного apple mac, чтобы сохранить их локально. linux / mac использует / или: для определения иерархии путей, поэтому, если имена файлов mac содержат/, то rsync заменяет / на:, чтобы оставаться в безопасности. однако, обмен/сетевое резервное…

  • rsync с Linux по Windows 7 создает файлы, к которым у меня нет разрешения на доступ

    Я использую rsync под cygwin для синхронизации моих папок музыки и изображений на двух машинах. У меня есть полный контроль над обеими этими папками на машине Windows,и разрешения на машине Linux, как правило, — rw — — — — — — — — — — — — — — — — — Когда я использую, например, rsync -rvu —delete…



9

Если вы используете CygWin-rsync из поля Windows, локальный файл, который вам нужен, почти наверняка:

/cygdrive/c/users/file.txt

скорее тогда:

/c/users/file.txt

Поделиться


paxdiablo    

15 ноября 2010 в 07:32



1

Написание правильного rsyncd.conf немного сложнее.

Я получаю сообщение об ошибке

@ERROR: chdir failed rsync ошибка: ошибка запуска клиент-сервер
протокол (код 5) в main.c(1296) [приемник=2.6.8]

и

2012/06/10 14:59:43 [9252] rsync: chdir /cygdrive/d сбой : Нет такого
файла или каталога (2)

Потому что я пропустил директиву "use chroot = false" в моем rsyncd.conf

Вот пример rsyncd.conf :

log file        = c:/rsync.log
auth users      = backup
secrets file    = /cygdrive/c/Program Files/RSync/rsyncd.secrets

[backup]
comment         = Backup this host
path            = /cygdrive/d
use chroot      = false
strict modes    = false
read only       = false
transfer logging = yes
hosts allow     = 192.168.2.252

Убедитесь, что файл rsync.log создан/изменен после перезапуска службы, если это не сделано, у вас есть какая-то ошибка в файле rsyncd.conf , и rsync использует их, но никакой ошибки или информации не отображается вообще!

Итак, формат файла rsyncd.secrets является:

backup:<password>

Поделиться


Mareg    

10 июня 2012 в 13:19


Похожие вопросы:

rsync с linux по windows без smb mount

Я хотел бы использовать rsync для зеркального отображения git repo с машины linux на несколько серверов Windows. То, что я вижу в интернете до сих пор, — это решения, которые требуют от вас mount…

Соединение от linux до windows через tcp

У меня есть серверное приложение tcp на windows (c#), которое принимает любое соединение по порту 3000 У меня есть клиентское приложение tcp на linux(ubuntu)(c++), которое отправляет простой текст…

минимальная установка rsync на windows xp?

Я хочу установить rsync на windows xp. Я искал в интернете, но большинство решений предлагают использовать cygwin, но есть ли другой способ сделать это? Я не хочу устанавливать cygwin, потому что…

rsync получить от mac до linux: замена толстой кишки

Я делаю резервную копию данных от linux до rsync с удаленного apple mac, чтобы сохранить их локально. linux / mac использует / или: для определения иерархии путей, поэтому, если имена файлов mac…

rsync с Linux по Windows 7 создает файлы, к которым у меня нет разрешения на доступ

Я использую rsync под cygwin для синхронизации моих папок музыки и изображений на двух машинах. У меня есть полный контроль над обеими этими папками на машине Windows,и разрешения на машине Linux,…

python ssh/rsync зависает при запуске от имени службы windows

У меня есть скрипт, который должен вытягивать файлы из коробки Linux в мою коробку Windows с помощью rsync. Я разработал его как сервис Windows, и этот бит, кажется, работает нормально. Исполняемые…

Хотите портировать существующий rsync на windows

Я знаю, что в настоящее время существует rsync для windows, доступный как G-Rsync. Вот это : — http://sourceforge.net/projects/grsync-win / Но то, что я хочу сделать, это просто сделать существующий…

Rsync от Windows до Linux, используя аутентификацию pagent putty

Я хочу rsync каталог от windows до Linux. Linux: rsyncd не работает, командная строка rsync должна быть вызвана на Linux. Windows: У меня есть ssh-ключ, загруженный в pagent.exe Простой batch-file…

Windows C составить rsync

У меня есть проблема с C компиляцией до .exe. Я скачал исходный код с https:/ / www.itefix.net/dl/gpl-source/rsync-3.1.2.tar.gz и установил minGW. Затем я пытаюсь . / configure я получаю ошибку:…

SSH с rsync по Windows

Мой сценарий сборки загружается в производство с помощью rsync через ssh . Обычно я развертываюсь из коробки Linux, но я хочу иметь возможность развертываться и из Windows, когда мне нужно быстро…

Как использовать rsync с ПК с Windows на удаленный сервер Linux?

У меня есть MinGW (также известный как «Git Bash») в Windows 7 и командный файл, который запускает rsync для резервного копирования файлов на внешний диск на удаленном компьютере Linux. Вот командный файл ( my_rsync_file.bat )

  REM Изменение каталога ... (при условии, что мы находимся в G: / Мои документы / Мои разные вещи)
компакт диск ../
REM запускает rsync ...
bash -c "rsync -avzh -P --stats --timeout = 60 --exclude Downloads. 'my_remote_linux_computer @ 128.95.170.200: / media / my_remote_linux_computer / LaCie / My \ Documents '"
  

Вот небольшое объяснение построчно:

REM Изменение каталога ... (при условии, что мы находимся в G: / Мои документы / Мои разные вещи)

Это просто выводит сообщение, напоминающее мне, что происходит.

кд ../

Это изменяет каталог на один уровень выше, чем командный файл (на «Мои документы»). Пакетный файл находится на внешнем диске моего компьютера с Windows.Я хочу синхронизировать всю папку «Мои документы» на этом внешнем диске с одноименной папкой на внешнем диске на моем удаленном компьютере с Linux.

REM запуск rsync ...

Просто печатает другое сообщение.

bash -c "rsync -avz -P --stats --timeout = 60 --exclude Downloads. [email protected]: / media / my_remote_linux_computer / LaCie / My \\ Documents"

bash : запускает MinGW со встроенной библиотекой rsync
-c : не уверен, что это делает
rsync : библиотека для синхронизации файлов, поставляется с MinGW
-avzh : a-Archive, v -Verbose, z-Compress, h-Human-readable, это общие параметры (подробнее: http: // linux.die.net/man/1/rsync)
-P : показать прогресс для больших файлов, чтобы я знал, заморожен он или нет
--stats : показать сводку о том, сколько файлов и байтов передано в конце
--timeout = 60 : убить его через 60 секунд, если он застрянет
- исключить исключить файлы / каталоги из синхронизации, в этом случае я исключаю каталог с именем «Загрузки»
. : указывает на синхронизацию всего содержимого «Мои документы» (ожидайте, что указанная вещь будет исключена в строке выше)
my_remote_linux_computer : имя моего удаленного компьютера Linux (не настоящее имя;)
@ 128.95.155.200 : IP-адрес моего удаленного компьютера Linux с https://www.whatismyip.com/ (не мой фактический IP-адрес 🙂
/ media / my_remote_linux_computer / LaCie / My \\ Documents : путь в каталог на моем удаленном компьютере Linux, в который я хочу получать файлы. Это внешний диск.

Обратите внимание, что пробел в «Мои документы» экранирован двумя обратными косыми чертами, а полное имя и каталог удаленного пункта назначения заключены в двойные кавычки.

Когда я запускаю двойной щелчок по файлу bat, мне предлагается ввести пароль для моего удаленного компьютера с Linux.Когда он завершится, я получаю некоторые сводные данные, и мне предлагается нажать любую клавишу, чтобы закрыть.

Sync — Windows Альтернатива Rsync?

В настоящее время этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, повлечет за собой дебаты, аргументы, опросы или расширенное обсуждение.Если вы считаете, что этот вопрос можно улучшить и, возможно, снова открыть, обратитесь за помощью в справочный центр.

Закрыт 8 лет назад.

Я пытаюсь настроить синхронизацию файлов между файловым сервером у меня дома и сервером моего брата, чтобы у каждого из нас были резервные копии важных данных за пределами офиса. Обе системы работают под управлением Windows (XP на одной, 7 на другой).
Мне нравится тот факт, что rsync будет передавать только часть файла, часть, которая была изменена, а не все это…сохраняя большую пропускную способность. Но мне очень мало повезло, что он заработал должным образом. Я пробовал использовать DeltaCopy, но у него ужасный интерфейс, и хотя он будет работать в моей локальной сети, он всегда не может подключиться удаленно. (См. Этот вопрос для получения более подробной информации)

Есть ли еще одна альтернативная программа, которая работает в Windows и имеет аналогичные функции? Пока что единственный вариант, который я вижу, — это использование FTP и чего-то вроде SyncBackPro … но это просто передача всего файла…и только пропускная способность 512 кбит / с делает это настоящей головной болью.

Изменить: Чтобы прояснить еще кое-что, резервная копия, которую я делаю, должна сканировать несколько сотен тысяч файлов, добавляя более 400 ГБ, на каждом конце … поэтому я не использую промежуточную службу нравится LIVE за передачу …

Edit 2: Кроме того, эти резервные копии должны быть выполнены через удаленное соединение и без VPN … Это означает, что об использовании общих файловых ресурсов Windows (SMB) не может быть и речи…

Жесткий диск

— альтернатива Windows для жесткого диска rsync

— альтернатива Windows для rsync — суперпользователь

Сеть обмена стеков

Сеть Stack Exchange состоит из 178 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.

Посетить Stack Exchange

  1. 0

  2. +0

  3. Авторизоваться
    Зарегистрироваться

Super User — это сайт вопросов и ответов для компьютерных энтузиастов и опытных пользователей.Регистрация займет всего минуту.

Зарегистрируйтесь, чтобы присоединиться к этому сообществу

Кто угодно может задать вопрос

Кто угодно может ответить

Лучшие ответы голосуются и поднимаются наверх

Спросил

Просмотрено
4к раз

На этот вопрос уже есть ответы :

Закрыт 10 лет назад.

Возможный дубликат:
Windows Альтернатива Rsync?

У меня есть внешний жесткий диск, подключенный к моей Windows7, и я хочу, чтобы он автоматически синхронизировался с папкой на моем жестком диске.

Что касается Linux, мне известно о rsync , который сейчас является для меня идеальным решением. К сожалению, сейчас мне приходится использовать Windows 7, и я ищу простую в использовании альтернативу Windows.

Предложения?

Создан 26 июл.

lisa17lisa17

109922 золотых знака1818 серебряных знаков2727 бронзовых знаков

2

Ну, я не использовал его некоторое время, но SyncToy был бы моим первым предложением.

Создан 26 июл.

EBGreenEBGreen

8,2232828 серебряных знаков3636 бронзовых знаков

1

Попробуйте «robocopy», встроенную утилиту Windows 7.
http://en.wikipedia.org/wiki/Robocopy

(хотя, думаю, вопрос может быть дубликатом.)

Создан 26 июл.

ApacheApache

15.5k2020 золотых знаков9696 серебряных знаков147147 бронзовых знаков

2

Я использую cwrsync (rsync для Windows)

Создан 26 июл.

Красный песчаный кирпичкрасный песчаный кирпич

76.3k1515 золотых знаков124124 серебряных знака192192 бронзовых знака

Я использую CrashPlan, резервное копирование на локальный диск бесплатное. Единственный раз, когда вы действительно платите, — это если вы используете CrashPlan Central (их онлайн-сервис резервного копирования).

Раньше я использовал FreeFileSync.

Создан 26 июл.

Суперпользователь лучше всего работает с включенным JavaScript

Ваша конфиденциальность

Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в ​​отношении файлов cookie.

Принимать все файлы cookie

Настроить параметры

rsync.net Облачное хранилище для удаленных резервных копий

Перенесите резервные копии Windows на сервер rsync через SSH

rsync.net предоставляет облачное хранилище для удаленных резервных копий . Если вы используете системы Windows, вы можете указать их нам, чтобы защитить свои данные.

Наше облачное хранилище на лучше, чем AWS, Google или Azure , потому что мы даем вам пустую файловую систему , чтобы с ней можно было делать все, что вы хотите.

Нажмите здесь, чтобы ознакомиться с простой ценой — или позвоните по телефону 619-819-9156 или напишите по адресу [email protected] для получения дополнительной информации.

Одна вещь, которую вы можете сделать, — это направить нам свои резервные копии Windows с помощью rsync через SSH.

Ниже приведено руководство, которое будет работать с любым сервером Linux / UNIX / SSH, а не только с rsync.net.

rsync в Windows — Обзор

Мы больше не рекомендуем пользователям Windows нашей платформы облачного хранения использовать rsync.exe для отправки своих резервных копий на rsync.net.

cwRsync может быть сложно настроить, и заставить его работать без присмотра под правильной учетной записью Windows может быть непросто.

Вместо этого мы рекомендуем либо наш бесплатный агент резервного копирования Windows, либо оплатить лицензию BackupAssist с помощью модуля rsync.

Но если нужно …

Установка cwRsync

cwRsync — это бесплатный дистрибутив утилиты rsync, оптимизированный для быстрой и простой установки в Microsoft Windows.

Вы можете скачать cwRsync здесь, однако мы рекомендуем проверить наличие последней версии здесь.

После того, как вы скачали этот установочный файл, запустите его. Вы должны выбрать значения по умолчанию, которые дает вам установщик, включая путь установки по умолчанию:

C: \ Program Files \ cwRsync

НАСТОЯТЕЛЬНО рекомендуем установить программу в папку по умолчанию.

Настройка вашей частной / публичной пары ключей

Вам необходимо создать и загрузить открытый ключ SSH, чтобы ваши резервные копии rsync могли происходить без запроса пароля.

ОЧЕНЬ ВАЖНО, чтобы пользователь, создающий ключ, был таким же пользователем, что и тот, кто запускает автоматическое резервное копирование. Самый простой способ убедиться в этом — войти в систему.
в качестве локального «администратора» выполнить следующие действия:

Нажмите кнопку «Пуск» и выберите «запустить».В диалоговом окне «Выполнить» введите «cmd» и нажмите Enter. Откроется окно командной строки (приглашение DOS).

В этой командной строке введите:

cd "c: \ program files \ cwrsync \ bin"

и нажмите Enter. Затем введите:

ssh-keygen -t rsa -N '

и нажмите Enter.

(Обратите внимание, что строка заканчивается ДВУМЯ символами одинарной кавычки, один за другим)

Вам будет предложено «ввести файл, в котором следует сохранить ключ» — просто нажмите Enter, чтобы принять заданное значение по умолчанию.

Теперь загрузите только что созданный ключ в файловую систему rsync.net с помощью этой команды:

rsync -av "/ cygdrive / c / documents and settings / administrator / .ssh / id_rsa.pub" [email protected]: .ssh / authorized_keys

(Вставьте свой собственный идентификатор пользователя вместо «1234» и правильное имя хоста вместо «s001»)

Когда вы запустите эту команду rsync, вам будет предложено подтвердить первое соединение — введите «да», а при запросе пароля введите пароль.
которое было отправлено вам в приветственном письме.

Ваш открытый ключ RSA теперь загружен в вашу файловую систему rsync.net, и любые дальнейшие входы в систему через ssh, которые выполняет этот пользователь Windows (в данном случае администратор), не требуют пароля.

Выбор того, что для резервного копирования

Теперь вам нужно решить, что делать резервную копию. Как правило, установленные программы, такие как те, что установлены в C: \ Program Files, не важны.
для резервного копирования, а также ваша основная папка C: \ Windows. Как правило, вас интересует только резервное копирование данных, часто ограниченное c: \ My Documents или c: \ Documents and Settings.

В этом примере мы выбираем резервную копию следующего каталога:

C: \ Documents and Settings \ администратор

Откройте сценарий rsync, перейдя в меню «Пуск», выбрав «Программы», затем выбрав cwRsync, затем выбрав «1. Пример пакета». Когда вы выберете это, скрипт откроется в текстовом редакторе.

Оставьте файл в том виде, в каком он есть — настройки очень важны. Вы просто собираетесь добавить одну или несколько команд rsync в его конец, по одной для каждой папки или файла, резервную копию которого вы хотите создать.

В этом примере мы добавляем одну строку в конец файла:

rsync -av --chmod u + rwx
-e "ssh -ic: \ docume ~ 1 \ administrator \ .ssh \ id_rsa"
"/ cygdrive / c / Documents and Settings / administrator"
1234 @ usw- s001.rsync.net:

Вы можете увидеть, как исходный каталог:

C: \ Documents and Settings \ administrator

вводится как

/ cygdrive / c / Documents and Settings / administrator

, это преобразование требуется для всех исходных папок Windows.

Вы можете добавить столько строк rsync в конец этого скрипта, сколько захотите — по одной для каждой папки, резервную копию которой вы хотите создать.

После того, как строки rsync были добавлены в сценарий, вы должны сохранить файл и выйти из редактора.

Планирование резервного копирования

Теперь осталось только запланировать резервное копирование, которое выполняется с помощью планировщика заданий, включенного в Windows.

Откройте планировщик заданий, выбрав: «Пуск», «Программы», «Стандартные», «Системные инструменты», «Назначенные задания».

Откроется обозреватель запланированных задач. Дважды щелкните элемент с названием «Добавить запланированную задачу».

В первом окне просто нажмите «Далее».

Во втором окне вас попросят «щелкнуть программу, которую вы хотите запустить в Windows». Не выбирайте программу из списка. Вместо этого нажмите кнопку «Обзор».

Выбираем программу c: \ program files \ cwrsync \ cwrsync.cmd

В третьем окне вас попросят «ввести имя для этой задачи» — вы можете назвать ее как хотите.Возможно «автоматическое резервное копирование rsync.net».

В этом третьем окне вас также спросят, как часто выполнять задачу. В этом примере мы выберем еженедельное резервное копирование.

В четвертом окне вас попросят выбрать время начала. Мы рекомендуем где-то между 22:00 и 6:00. Вы не должны выполнять эти резервные копии в течение рабочего дня, так как сетевой трафик они
потребление может повлиять на вашу работу.

В пятом окне вас попросят «Введите имя и пароль пользователя» — это логин Windows, под которым будет выполняться резервное копирование, и важно, чтобы вы выбрали тот же логин Windows.
который вы использовали для создания ключа RSA выше.Имя пользователя вводится в форме имя компьютера \ имя пользователя … например: server01 \ administrator Пароль должен
также быть введенным.

В шестом и последнем окне нажмите «Готово».

Тестирование вашей резервной копии

Чрезвычайно важно протестировать резервную копию. Вы проверяете не только то, что резервная копия работает должным образом и передает файлы, которые, как вы думаете, будут, но и что она будет правильно входить в систему.
ваш rsync.net файловую систему без запроса пароля.

Первый тест, удостоверяющий, что при автоматическом резервном копировании не запрашивается пароль, выполняется простым запуском резервного копирования самостоятельно. В меню «Пуск» выберите «Выполнить» и введите расположение сценария резервного копирования:

c: \ program ~ 1 \ cwrsync \ cwrsync.cmd

Вы должны увидеть запуск резервного копирования в появившейся командной строке, и он должен завершиться без запроса пароля.

После того, как вы завершили успешное резервное копирование и периодически по прошествии некоторого времени, вы должны входить в свой rsync.net и просмотрите свою файловую систему.

Здесь подробно описаны различные методы просмотра файловой системы rsync.net в Windows:

Обзор интеграции с Windows

Дополнительные замечания

— При тестировании резервного копирования убедитесь, что администратор НЕ вошел в систему дважды — в противном случае окно DOS, которое появляется, когда резервное копирование выполняется автоматически из планировщика Windows, может появиться в другом сеансе (возможно, при входе в систему с удаленным доступом).Если учетная запись администратора вошла в систему более одного раза, это может привести к тому, что вы не увидите сообщений об ошибках, которые помогут вам диагностировать командный файл, если он не работает должным образом из планировщика Windows.

— В приведенном выше примере команды rsync есть параметр: —chmod u + rwx, который гарантирует, что всем файлам, которые вы загружаете в rsync.net, помимо любых других разрешений, которые они имеют, предоставляются права на чтение / запись / выполнение для владельца файлов. Этот параметр настоятельно рекомендуется изменять, только если вы точно знаете, что делаете.Однако следует отметить, что это может привести к тому, что файлы на удаленной стороне будут иметь больше разрешающих разрешений, чем исходные файлы.

Больше информации

rsync.net публикует широкий спектр документов поддержки, а также ответы на часто задаваемые вопросы.

Вы или ваш генеральный директор можете найти нашу страницу генерального директора полезной.

Пожалуйста, ознакомьтесь с нашими требованиями HIPAA и Sarbanes-Oxley.
е заявления.

Свяжитесь с [email protected] для получения дополнительной информации и ответов на ваши вопросы.

Нажмите здесь, чтобы ознакомиться с простой ценой — или позвоните по телефону 619-819-9156 или напишите по адресу [email protected] для получения дополнительной информации.

Резервное копирование с помощью rsync в Windows (WSL)

rsync — отличный инструмент резервного копирования, возможно, лучший. Узнайте, как использовать его в Windows на машине debian, работающей с подсистемой Windows для Linux (WSL)

Об этом посте


Примите реальность и создайте запасной план

— Майли Сайрус

Я не могу сосчитать, сколько раз я терял файлы, потому что мне было лень создать надлежащую резервную копию.И каждый раз я говорил себе, что этого больше никогда не повторится.

В какой-то момент я нашел решение для компьютеров Mac и Linux:

rsync

, инструмент, который может синхронизировать содержимое двух каталогов.

Если вы здесь, это потому, что вы отчаянно ищете решение для запуска rsync в Windows, поэтому вы, вероятно, уже знаете, что rsync:


  • эффективный

    : он использует размер и время модификации файлов, чтобы решить, какие файлы необходимо передать.

  • легко

    использовать: одной команды достаточно для синхронизации всего каталога

  • универсальный

    : например, вы можете делать резервные копии на удаленную машину, войдя в систему как другой пользователь.

  • безопасно

    : У меня никогда не было проблем с этим, и вы можете проверить, что rsync будет делать с опцией пробного запуска, прежде чем делать это.

Единственный недостаток этого идеального инструмента резервного копирования заключается в том, что он недоступен в Windows.Было несколько решений, например запуск rsync с cygwin. Но у меня возникли некоторые проблемы, например, при работе с именами файлов со странными символами, такими как французские акценты.

Тем не менее, я хотел иметь возможность подкрепить мою драгоценную коллекцию Жоржа Брассенса, Сержа Генсбура и Рено.

Другое решение — установить полную виртуальную машину Linux на хосте Windows, но это действительно использование кувалды, чтобы сломать орех, и полная трата времени и ресурсов, особенно дискового пространства.

Но сейчас будущее! наконец-то стало возможным запускать дистрибутив Linux в Windows 10 с использованием подсистемы Windows для Linux (WSL). И в этом дистрибутиве для запуска rsync.

В этом посте вы узнаете, как:

  • Включите WSL и установите любой дистрибутив Linux по вашему выбору.
  • Используйте rsync для резервного копирования папки на вашем ПК с Windows в другую папку на другом диске на том же ПК.

Для этого на вашем компьютере должна быть установлена ​​Windows 10.

Подсистема Windows для Linux (WSL)

Подсистема Windows для Linux была представлена ​​в Windows 10. Она позволяет разработчикам запускать среду GNU / Linux, включая большинство инструментов командной строки, утилит и приложений, непосредственно в Windows без изменений, без дополнительных затрат на виртуальную машину.

Это действительно просто, а документация отличная! И в плагиате нет необходимости, поэтому я не буду повторять здесь инструкцию по установке. Но я просто хочу немного помочь вам начать работу.

В какой-то момент вам будет предложено включить WSL, открыв PowerShell.

Вы можете открыть PowerShell, нажав клавишу Windows или кнопку запуска и набрав:

Откроется окно терминала. Чтобы включить WSL, вам необходимо запустить powershell от имени администратора. Итак, в терминале PowerShell введите:

 Start-Process powershell -Verb runAs
 

Это открывает еще одно окно PowerShell, в котором у вас есть права администратора. Теперь вы можете следить за

инструкции от майкрософт

.

Я решил установить дистрибутив Debian Linux. Вы можете сделать то же самое или выбрать ubuntu, если хотите, он тоже будет работать. Если вы возьмете другой дистрибутив, некоторые из моих инструкций, приведенных ниже, вероятно, не будут работать, но вы точно знаете, что делаете.

После

инициализация вашей системы debian

, мы можем начать работу с rsync.

Установить rsync

Чтобы установить rsync, просто выполните:

 sudo apt установить rsync openssh-client
 

Затем мы собираемся протестировать это.Создайте два каталога:

Теперь создайте два пустых файла в srcdir и перечислите содержимое этого каталога:

 сенсорный каталог srcdir / file1 srcdir / file2
ls srcdir
 

Чтобы синхронизировать каталоги srcdir и резервные копии, введите:

 rsync -av каталог / резервное копирование /
 
 отправка инкрементного списка файлов
./
file1
файл2

отправлено 176 байт получено 57 байт 466,00 байт / сек
общий размер 0, ускорение 0,00
 

Наконец, укажите каталог назначения, он содержит два файла.Попробуем удалить один из файлов перед повторным запуском rsync:

 rm srcdir / file2
rsync -av srcdir / резервное копирование /
 

Мы видим, что резервная копия все еще содержит файл2. По умолчанию rsync ничего не удаляет. Если вы хотите удалить, выполните:

 rsync -av --delete srcdir / backup /
 
 отправка инкрементного списка файлов
удаление файла2

отправлено 82 байта получено 21 байт 206,00 байт / сек
общий размер 0, ускорение 0,00
 

Теперь у вас должно быть достаточно доверия к rsync, чтобы сделать резервную копию ваших данных.Давай сделаем это!

Монтаж внешнего диска



ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: прежде чем пытаться выполнить приведенные ниже команды, я настоятельно рекомендую сделать резервную копию ваших данных!

Хорошо, шучу 😉

Я предполагаю, что вы хотите сделать резервную копию на внешний диск, поэтому сначала подключите диск к компьютеру. Вы должны увидеть диск в проводнике Windows. В терминале Linux смонтированные диски находятся в / mnt. Перечислите их, выполнив:

Это буквы, присвоенные разделам моих дисков Windows.C: это мой системный раздел.

Скорее всего, вы не найдете здесь разделов вашего внешнего диска. Он монтируется окнами, но не машиной Linux. Чтобы смонтировать его, сделайте следующее:

  • в проводнике Windows узнайте, какую букву Windows присвоила разделу на внешнем диске. Допустим, это J:
  • затем создайте точку монтирования и смонтируйте раздел
 судо mkdir / mnt / j
sudo mount -t drvfs J: / mnt / j
 

Теперь вы можете увидеть содержимое раздела с помощью

и вы можете перейти в корень раздела с помощью

Вы можете использовать cd для изменения каталога и ls для вывода списка содержимого каталога.

Запуск резервного копирования

Предположим, вы хотите сделать резервную копию C: \ data \ в J: \.

Просто сделайте следующее. Параметр -a нужен всегда: это то, что использует большинство людей, вы можете проверить руководство по rsync для получения дополнительной информации. Параметр -v дает подробный вывод. А опция -n предназначена для пробного прогона: ничего не произойдет, это всего лишь тест. Наконец, я использую sudo, потому что без него я получаю ошибки прав доступа.

 судо rsync -avn / mnt / c / data / / mnt / j /
 

И наблюдайте за выходом.Если вам это нравится, повторите попытку без опции -n.

И сейчас?

В этом посте вы узнали, как:

  • настроить WSL, подсистему Windows для Linux, для запуска машины debian
  • используйте rsync для резервного копирования файлов на внешний диск

Каждый раз, когда вы хотите сделать резервную копию, вы должны запускать машину Debian и запускать команду rsync.

Было бы неплохо автоматизировать это, чтобы резервное копирование выполнялось каждый раз при запуске ПК.Я пока не знаю, как это сделать, но сделаю статью, как только узнаю.

Оставайтесь в курсе!

Пожалуйста, дайте мне знать, что вы думаете, в комментариях! Я постараюсь ответить на все вопросы.

И если вам понравилась эта статья, вы можете подписаться на мой список рассылки, чтобы получать уведомления о новых сообщениях (обещаю, не чаще одного письма в неделю).

Rsync для Windows — мощный инструмент резервного копирования для Windows

Rsync — популярное приложение для Linux, которое позволяет передавать, синхронизировать и создавать резервные копии файлов на компьютерах.Эта программа проверит отметку времени и размер файла. Это эффективный способ синхронизации или резервного копирования вашего компьютера на другой компьютер и даже в облачное хранилище. Хотя rsync разработан для системы Linux, есть ли способ установить и запустить rsync в Windows? Что ж, есть несколько программ, которые имеют схожую функциональность с rsync, которые работают на машине Windows. Здесь мы рассмотрим некоторые программы rsync для Windows, которые вы можете использовать для резервного копирования вашего компьютера с Windows.

Список программ Rsync для Windows

1.DeltaCopy

DeltaCopy — это бесплатная программа быстрого инкрементного резервного копирования с открытым исходным кодом для Windows. Он предлагает эффективный способ резервного копирования файлов без необходимости каждый раз отправлять их целиком. Он скопирует только ту часть файла, которая была изменена. С помощью этого метода мы можем сэкономить много трафика. Это клиент-серверное приложение, что означает, что вам нужно будет установить его на обоих компьютерах, которые будут выступать в качестве сервера и клиента.

DeltaCopy поддерживает все версии Windows, включая Windows 7 и Windows 10.Даже на официальном сайте Windows 10 не упоминается, мы протестировали, что эта программа хорошо работает на нашей Windows 10 Professional. Он состоит из клиентского и серверного приложений. Сервер должен быть настроен на компьютере, который мы используем для хранения данных от клиента.

Как установить DeltaCopy в Windows 10
  1. Загрузить DeltaCopy
  2. Распакуйте zip-файл
  3. Дважды щелкните установочный файл в каталоге DeltaCopy
  4. Следуйте инструкциям по установке на экране

После установки запустите DeltaCopy и зарегистрируйте его как службу.

Нажмите кнопку «Зарегистрировать службу Windows», а затем введите свое имя пользователя и пароль, которые вы используете для входа в Windows. Затем нажмите кнопку Start Server, чтобы запустить службу. Когда служба будет правильно запущена, он станет зеленым.

Теперь нам нужно настроить, где мы хотим сохранить резервную копию.

Клиент DeltaCopy

Клиентское приложение довольно простое. Нам нужно только создать резервный профиль, который содержит информацию об IP-адресе сервера,

.

Вы можете установить расписание резервного копирования, добавить папки для резервного копирования и т. Д.Есть несколько вариантов, таких как установка уведомления по электронной почте и изменение расписания резервного копирования.

2. Acrosync

Acrosync — еще одна простая альтернатива Rsync для Windows. Он может легко выполнять резервное копирование машины Windows на удаленный сервер Linux / NAS. В отличие от DeltaCopy, Acrosync не требует специального серверного программного обеспечения rsync. Acrosync использует встроенную технологию rsync в ОС Windows. Мы можем легко сделать резервную копию наших данных в Linux, используя протокол ssh. Поэтому, если у вас есть сервер Linux в вашей сети или, возможно, сервер NAS, такой как Asustor NAS, вы можете использовать Acrosync для резервного копирования данных на эти серверы.

Acrosync имеет простой и очень легкий пользовательский интерфейс. Нам нужно только ввести IP-адрес удаленного сервера, имя пользователя и пароль. Затем добавьте источник и место назначения резервной копии. Все очень просто. Он использует протокол ssh (порт по умолчанию — 22).

Основные характеристики Acrosync:

  • Поддержка аутентификации с открытым ключом
  • Несколько профилей (несколько заданий резервного копирования)
  • Создать инкрементный снимок
  • Сухой ход
  • Варианты расписания
  • Встроенный ограничитель полосы пропускания

Acrosync — лучший клиент rsync для Windows, но это программное обеспечение не является бесплатным.Вы можете попробовать его в течение 15 дней, а после этого вы должны будете приобрести его, если хотите и дальше использовать. Чтобы загрузить и приобрести полную версию Acrosync, перейдите по этой ссылке для скачивания .

Как сделать резервную копию с помощью Acrosync

Использовать Acrsync очень просто.

  • Откройте Acrosync из меню приложения.
  • Затем введите IP-адрес сервера или имя хоста. Обратите внимание, что вы также можете подключиться к облачному компьютеру, общедоступным / частным облачным вычислениям.
  • Введите имя пользователя и пароль для подключения к удаленному серверу. После ввода имени пользователя и пароля удаленного ssh-сервера нажмите кнопку обзора, чтобы выбрать папку назначения.
  • Выберите локальный каталог.
  • Планирование. Щелкните Выполнить в запланированное время, чтобы настроить регулярное резервное копирование.

Дополнительные параметры

Если ваш сервер использует порт, отличный от 22, вы можете указать здесь. Есть также некоторые дополнительные параметры, такие как:

  • Аутентификация с открытым ключом.Это позволит общедоступному ключу подключиться к вашему ssh-серверу.
  • Распространить удаление. Эта функция позволит удалять файлы в месте назначения, если они не существуют в источнике. Это хорошо для синхронизации двух каталогов.
  • Создать инкрементный снимок. Это то, что нам нравится. Acrosync скопирует только измененные файлы. Не каждый раз полное резервное копирование
  • Сухой ход. Включите это, чтобы имитировать задание резервного копирования.

Загрузить Acrosync сейчас

3.GRsync

GRsync — это графический rsync для Windows. Он имеет простой интерфейс и в то же время прост в использовании. В основном он используется для синхронизации и резервного копирования файлов. Grsync использует библиотеки GTK и выпускается под лицензией GPL. Нам не нужно устанавливать библиотеки Gnome в Windows, чтобы использовать GRsync. Grsync немного устарел, но по-прежнему поддерживает Windows 10. Последняя версия GRsync — 0.6.3, а последнее обновление было в июле 2016 года.

Загрузить GRsync

Как установить GRsync в Windows

Выполните следующие действия, чтобы установить GRsync в Windows 10

  • Скачать GRsync
  • Установите его, дважды щелкнув файл установки.Затем укажите место, где будет установлен GRsync.
  • Щелкните Извлечь, чтобы начать установку

Обратите внимание, что при этом не создается ярлык программы в меню «Пуск» Windows. Итак, нам нужно открыть следующий каталог для доступа к исполняемому файлу GRsync.

C: \ Program Files \ Grsync \ bin

Вы можете изменить C: \ Program Files \ Grsync \ на ваш фактический установочный каталог. Дважды щелкните файл grsync в каталоге bin выше.

GRsync не поддерживает прямое ssh-соединение с сервером. Вам необходимо смонтировать удаленный каталог к ​​вашей Windows.

Последняя мысль

Rsync для Windows — отличный инструмент для резервного копирования и синхронизации наших файлов с удаленным компьютером или сервером. Acrosync предлагает отличные возможности при использовании программного обеспечения Rsync. DeltaCopy тоже хороша, но для работы требуется серверное программное обеспечение. Вот краткое изложение программного обеспечения Rsync для Windows, которое мы рассматриваем в этом посте.

Функции DeltaCopy Acrosync GRsync
Поддержка Linux SSH Server Нет Да Нет
Требуется серверное программное обеспечение Да Нет Нет
Инкрементное резервное копирование Да Да Да
Резервное копирование по расписанию Да Да Да
Лицензия Бесплатно — с открытым исходным кодом Платно Бесплатно — с открытым исходным кодом

Спасибо, что прочитали этот обзор Rsync для Windows, и увидимся в следующем посте.

Нравится:

Нравится Загрузка …

Как сделать резервную копию данных с помощью Rsync в Windows 10

Лично мне нравится Rsync , небольшая утилита командной строки для синхронизации и резервного копирования данных. Я использую Rsync для резервного копирования моего сервера Linux в течение последних нескольких лет. Я искал подобное программное обеспечение для Windows 10, но все равно не могу его найти. В этой статье мы обсудим, как использовать Rsync для резервного копирования наших данных в Windows 10. Мы будем использовать подсистему Windows для Linux.

Подсистема

Windows для Linux позволяет нам легко запускать операционную систему Linux поверх Windows. Нам не нужно стороннее программное обеспечение для виртуализации, такое как VMware или Virtualbox. Чтобы настроить WSL в Windows 10, следуйте моему предыдущему руководству ниже

.

Установить подсистему Windows для Linux в Windows 10

В этой практике я использую WSL Debian Linux. Вы можете установить Debian из Microsoft Store после настройки WSL в Windows 10. Я покажу вам, как я создаю резервную копию моей локальной папки на удаленном сервере NAS.

Шаги по резервному копированию данных с помощью Rsync в Windows 10

Шаг 1. Установите подсистему Windows для Linux

Как я уже упоминал выше, сначала нам нужно установить и настроить WSL в Windows 10.

Шаг 2. Установите Debian

Затем установите Debian, Ubuntu или любой другой Linux, который вам удобно использовать. Для загрузки используйте Microsoft Store.

Шаг 3. Установите Rsync

Если вы используете Ubuntu, пакет rsync уже установлен.Но если вы выбираете Debian, вам необходимо установить этот пакет вручную. Я также устанавливаю ssh, потому что хочу сделать резервную копию моих локальных данных на удаленном сервере через ssh.

 sudo apt установить rsync ssh 

Шаг 4. Выполните резервное копирование

В этом примере я собираюсь сделать резервную копию моей папки виртуальной машины на удаленном сервере (192.168.100.100). Это резервный источник.

ф: \ VM

Папка на удаленном сервере будет:

/ mnt / Pool01 / Test

Теперь выполним команду

 rsync -avv / mnt / f / VM dhani @ 192.168.100.100: / mnt / Pool01 / Test 

Мой диск F смонтирован в каталоге / mnt в Debian Linux.

Мы также можем запустить команду rsync прямо из Windows PowerShell. Например:

 wsl rsync -avv / mnt / f / VM [email protected]: / mnt / Pool01 / Test 

Приведенная выше команда синхронизирует или создает резервную копию папки VM с удаленной папкой Test. Мы можем сделать больше с помощью rsync. Для получения дополнительных команд или параметров посетите следующую страницу, чтобы узнать больше о rsync.

Общие параметры Rsync

Вот некоторые из распространенных опций rsync :

  • — a : режим архива, режим архива позволяет рекурсивно копировать файлы, а также сохраняет символические ссылки, права доступа к файлам, права собственности пользователей и групп и временные метки
  • — v : подробный режим
  • — h : человек читаемые, выходные числа в удобочитаемом формате

Примеры резервного копирования / синхронизации

А.Синхронизация / копирование содержимого папки A в папку B (локальные папки)

 rsync -avh --progress / mnt / f / folder_a / / mnt / f / folder_b 

Команда скопирует / синхронизирует все файлы внутри folder_a по folder_b и покажет прогресс.

Теперь folder_b содержимое точно такое же, как folder_a .

B. Синхронизация / копирование папка_a в папку_b (локальная папка)

Немного похоже на описанный выше сценарий.Но следующая команда создаст folder_a внутри folder_b.

 rsync -avh --progress / mnt / f / folder_a / mnt / f / folder_b 

C. Синхронизация / копирование локальной папки _a на удаленный сервер через SSH

Следующий сценарий копирует / синхронизирует локальную папку на удаленный сервер через SSH.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *