Grsync windows как пользоваться

Обновлено: 02.07.2024

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

Попробую сберечь вам немного времени на чтение мануала и рассказать о самом важном и полезном. Простыми словами, как есть.

Зачем нужен rsync?

Зачем пользоваться rsync если есть привычные cp и scp , спросите вы.

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

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

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

Принцип применения

Если мы говорим о простом копировании файлов, то первым делом всегда стоит сделать пробный прогон (ключ -n ) в режиме с показом подробностей ( -v ):

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

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

В этой команде ключ -a подразумевает рекурсивное копирование всех файлов и каталогов включая их атрибуты, такие как дата создания и дата изменения. Ключ -v даст вам подробный отчет о работе по мере выполнения и по окончании.

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

С одной стороны правила очень простые.

Если в конце пути до именованного источника нет слеша, то скопируется сам каталог.

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

С другой стороны вполне можно в пылу забыть что и как, скопировав содержимое каталога вместо самого каталога, получив кучу хлопот с удалением лишних файлов, появившихся из ниоткуда с датами в прошлом (ключик -a , помните?).

Потому лучше всегда следовать обычному сценарию с предварительной проверкой операции.

Некоторые полезные ключи

Сначала поговорим об опциях которые вам будет здорово знать без шпор и шпаргалок.

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

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

Если вам хочется знать сколько всего, по мнению rsync, осталось работать, вам нужен ключ --info=progress2 . Если вы копируете целую файловую систему, то этот ключ, будучи использован сам по себе, вас разочарует: информация об итоговом объёме будет постоянно обновляться. Это происходит потому что rsync не пытается считать всю файловую систему до того как начнёт копирование, а делает обе задачи сразу.

Но не отчаивайтесь! Если вы хотите знать точно сколько осталось работать с самого начала, то можно отключить последовательное сканирование ключём --no-inc-recursive или, короче, --no-i-r .

Ключи выше есть начиная с версии 3.1.0, то есть уже работают в Debian stable.

Если требуется не просто скопировать файлы, а полностью синхронизировать содержимое каталогов, удалив лишние файлы, при этом вам почему-то не с руки синхронизировать файлы с помощью Git, то пригодится ключ --delete (или эквивалентный ему --del ).

С этим ключём rsync удалит лишние файлы из каталого-назначения.

Ключ -n в команде выше был оставлен намеренно.

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

О сжатии замолвим слово

Вопреки популярному заблуждению от использования сжатия внутри rsync (ключ -z ) больше вреда, чем пользы. Дело в том что всюду используемый OpenSSH уже с версии конца 2005 года по умолчанию использует сжатие передаваемых данных. Сами понимаете, сжатие уже сжатых данных только лишь использует ресурсы процессора, не уменьшая объем передаваемых данных.

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

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

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

Копируем частично

Наверняка вам когда-нибудь понадобится чтобы rsync пропускал некоторые файлы при копировании.

В самом простейшем случае вам нужно чтобы rsync не копировал файлы разных систем контроля версий, включая каталог вроде .svn и .git . В этой задаче вам не нужно ничего кроме ключа -C (или --cvs-exclude в полной форме). Так файлы большинства популярных VCS будут проигнорированы будто их нет. Не забываем использовать -n при первом запуске.

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

Исключаем через .rsync-filter

Если нужные более гибкие правила, что особенно актуально если копирование делается регулярно, то лучше не мелочиться и оформить все исключения в файле .rsync-filter .

Для исключения чего-либо из списка на перенос нужно добавить в этот файл строчку с правилом ( - или + в начале строки).

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

Если нужно исключить файл или каталог относительно каталога в котором находится .rsync-filter , то укажем со слешем в начале:

В правилах звездочка соответствует любым символам кроме слеша, а две звездочки соответствуют вообще любым символам:

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

Файлы .rsync-filter команда rsync умеет искать по всей структуре каталогов будучи запущена с ключём -F .

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

Как видите, лишние файлы не скопировались:

Ограничим rsync по ssh

Случается нужно разрешить работу rsync по ssh, удалённо и без пароля, только определённого для каталога и хоста, исключив копирование чего-либо в другие места или из других мест.

То сначала нужно получить команду, которую rsync выполняет при вызове ssh на удаленном хосте:

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

Если нужно чтобы ваш бекап нельзя было перезаписать или удалить на сервере назначения, то опцию --del следует заменить на --ignore-existing .

Машина времени

Те пользователи macOS и OS X, что делают бэкап, наверняка оценили работу Time Machine. Эта программа позволяет буквально в два клика вернуться к прошлой версии любого файла. Не смотря на все красивости, Time Machine не делает ничего такого чего мы не можем сделать с помощью rsync .

Скрипт следует положить в корень того диска или каталога, куда следует делать бэкапы.

Запускать с указанием единственного аргумента: каталога с исходными файлами. Например, так.

После нескольких запусков получается такая структура каталога:

При этом latest указывает на самый последний бэкап.

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

Всё множество копий занимает лишь немного больше места чем исходный каталог. Место уходит на изменившиеся файлы.

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

Такая существенная экономия возможна благодаря упомянутым жестким ссылкам, которые rsync делает для файлов, не изменившихся с последнего копирования.

У одинаковых, не менявшихся, файлов будет один и тот же inode.

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


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


Некоторые дополнительные особенности:

- Возможность копирования ссылок, файлов устройств, полномочий доступа (владелец, группа) и прав на файлы

- Наличие опций исключения, схожих с опциями в GNU tar

- Режим игнорирования CVS, для игнорирования тех файлов, которые проигнорировались бы системой CVS

- Может быть использована любая удалённая оболочка, позволяющую осуществлять трансфер данных, включая ssh или rsh

- Не требуется привилегий супер пользователя

- Конвейерная передача файлов, чтобы минимизировать затраты времени ожидания

- Поддержка анонимных или требующих аутентификации rsync демонов (идеально для зеркалирования)


Grsync простой графический GTK2 интерфейс к консольной утилите rsync .




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







Лицензия: GNU General Public License (GPL)

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

1. Установите и настройте сервер Rsync.


1. Щелкните программу установки сервера для установки.В процессе установки вам будет предложено ввести имя пользователя и пароль серверной программы, когда служба запущена. Его можно настроить или установить с именем пользователя и паролем по умолчанию. (Кажется, эта вещь не нужна. Но она добавит пользователя на ваш компьютер.)

Имя пользователя - это мой IP-адрес, когда я его создаю, и он автоматически создает для меня пользователя. (Похоже, он тоже не используется. Возможно удаление.)

2. После завершения установки войдите в корневой каталог каталога установки программы, откройте файл конфигурации (например: D: \ Program Files (X86) \ ICW \ rsyncd.conf) и введите конфигурацию.
Моя полная конфигурация выглядит следующим образом (должно быть много конфигураций, которые можно не указывать, и те, кому интересно, могут их изучить):


3. Создайте новый файл паролей: D: \ Program Files (X86) \ ICW \ accountPassword.conf
Формат файла паролей: имя пользователя: пароль (root: 12345), по одному в каждой строке.
, потому что я не использовал имя учетной записи и пароль. Поэтому я не создавал этот файл. Но согласно тому, что написано в Интернете. Поскольку пользователь, запускающий эту службу, является пользователем, упомянутым в пункте 1 выше. Поэтому добавьте этому пользователю разрешение на чтение пароля.
(1). Щелкните созданный файл паролей правой кнопкой мыши. Выбрать атрибут
(2). Выберите безопасность, а затем выберите пользователя, которого вы создали ранее. Нажмите, чтобы отредактировать

(3). Дайте соответствующие разрешения, которые вы хотите, а затем нажмите Применить, чтобы ОК.


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

5. Если брандмауэр включен, TCP-порт 28950 должен быть добавлен в правила брандмауэра, чтобы разрешить обмен данными.
Поскольку у меня отключен брандмауэр, я не буду проводить демонстрацию.


6. Проверка службы, откройте командное окно dos, введите telnet 192.168.1.109 28950 (если сервер и клиент telnet не установлены, найдите клиент и сервер Telnet на панели управления -> добавить и удалить программы -> открыть и закрыть функция Windows, отметьте, чтобы установить). Если telnet удается успешно подключиться и появляются похожие тексты, такие как @RSYNCD: 30.0, это означает, что служба запустилась нормально.

Во-вторых, установите и настройте клиент Rsync.

1. Загрузите установщик клиента и переходите к следующему шагу.

2. Проверьте возможность подключения сервера Rsync на клиенте. Соответствующий адрес и порт, рассчитанные на компьютере, на котором расположен клиент Rsync, telnet, на котором расположен сервер Rsync

telnet 192.168.1.109 28950

Если появляется подобный текст, например @RSYNCD: 30.0, это означает, что клиент подключен к серверу нормально.

3. Добавьте переменные среды.

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

4. В интерфейсе командной строки dos проверьте, можно ли синхронизировать файл, я написал файл сценария непосредственно для его запуска.
Откройте программу для редактирования текста и введите следующую команду:
У этого вопроса нет версии для имени пользователя и пароля.

Если вы установите логин и пароль. Используйте следующую команду

Параметр Описание
--port = 28950 ------- порт
-vzrtopg --progress ------- Показать подробную информацию о процессе синхронизации.
–delete ------- Удалить данные из каталога клиента, который отличается от каталога сервера, чтобы гарантировать, что данные на обеих сторонах в точности совпадают.
/ cygdrive / e / Каталог сохранения изображений / test ------- Каталог резервных копий в окне (принимающая сторона)
test ------- Имя модуля, определенного в файле конфигурации сервера rsyncd.conf
192.168.1.109 ------- IP-адрес сервера Rsync


При сохранении выберите тип файла как файл сценария:


5. Сначала запустите файл сценария, чтобы проверить, можно ли нормально синхронизировать файл. если вы можете. Просто добавьте скрипт в окна тайминга.
Откройте панель управления -> Инструменты управления -> Планировщик заданий
Нажмите, чтобы создать задачу

Задайте имя задачи, а затем отметьте ее. Выполнять независимо от того, вошел пользователь в систему или нет.

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


Наконец, нажмите «Операция» или «Создать».
Просто выберите расположение скрипта.

Наконец, есть набор некоторых ошибок в процессе установки, которые я видел в Интернете:

Ошибка 1: rsync: ошибка чтения: сброс соединения одноранговым узлом (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receive r=3.0.2]
Решение. Очень вероятно, что служба rsync не включена на стороне сервера. Включите сервис.

Ошибка 2: @ERROR: ошибка chdir
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
Решение: каталог синхронизации на стороне сервера не имеет разрешения. Пользователь cwrsync по умолчанию - Svcwrsync. Добавьте пользователю разрешения Svcwrsync для каталога синхронизации.

Ошибка 3: @ERROR: не удалось открыть файл блокировки
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
Решение. Добавьте файл блокировки = rsyncd.lock в файл конфигурации rsync.conf, чтобы решить эту проблему.

Ошибка 4: rsync: не удалось открыть файл паролей "/cygwin/e/Setting/Rsync/rsync_db.pwd": нет такого файла или каталога (2)

Решение: каталог с файлом паролей должен существовать, и он должен быть написан в стиле POSIX: /cygdrive/e/Setting/Rsync/rsync_db.pwd

Ошибка 5: @ERROR: ошибка аутентификации в модуле data_backup ошибка rsync: ошибка запуска клиент-серверного протокола (код 5) на main.c (1506) [Receiver = 3.0.7]

Решение: неверный пароль, просто введите правильный пароль. Если имя пользователя и пароль верны, возможно, разрешения файла паролей учетной записи удаленного сервера rsync должны быть 600.

Ошибка 6: файл паролей не должен быть доступен для других

Решение: это связано с тем, что разрешения для rsyncd.pwd и rsyncd.sec неверны и должны быть установлены на 600. Например: chmod 600 rsyncd.pwd, в Windows владелец файла паролей должен быть изменен на пользователя, который запускает программу.

Ошибка 7: @ERROR: недопустимый идентификатор пользователя. Ошибка Rsync: ошибка запуска клиент-серверного протокола (код 5) на main.c (1506) [Receiver = 3.0.7]
Решение: добавьте следующие две строки в файл rsyncd.conf
uid = 0
gid = 0

Вопрос 8: @ERROR: ошибка chroot
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
Причина: каталог на стороне сервера не существует или не имеет разрешений. Создание каталога и исправление разрешений может решить проблему.

Вопрос 9: @ERROR: Неизвестный модуль tee_nonexists
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
Причина: указанный модуль не существует на сервере. Укажите правильное имя модуля или измените его на модуль, который вы хотите на стороне сервера, чтобы решить проблему.

Вопрос 10: rsync: не удалось подключиться к 218.107.243.2: Нет маршрута к хосту (113)
rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
Причина: возможно, что другая сторона не включена, заблокирована брандмауэром или заблокирована брандмауэром в проходящей сети. Выключение брандмауэра фактически открывает TCP UDP-порт 873 или назначенный порт rsync.

Вопрос 11: ошибка rsync: ошибка при запуске протокола клиент-сервер (код 5) на main.c (1524) [Receiver = 3.0.7]
Причина: неверное содержимое файла конфигурации /etc/rsyncd.conf. Пожалуйста, проверьте файл конфигурации правильно.

Вопрос 12: rsync: chown «» не удалось: недопустимый аргумент (22)
Причина: нельзя скопировать разрешения. Просто удалите параметр полномочий синхронизации. (Эта ситуация чаще встречается в Linux и Windows)

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


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

конфигурация linux rsync

sudo apt-get установить grsync

После установки вы найдете Grsync в списке Приложения> Системные инструменты . Давай и беги. Графический интерфейс пользователя довольно простой и хорошо справляется с разделением основных параметров, которые вы, скорее всего, будете использовать чаще всего с rsync, и расширенных параметров, которые помогут вам настроить и настроить поведение rsync в соответствии с вашими потребностями.

конфигурация linux rsync

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

Linux Rsync GUI

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

rsync linux gui

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

Вы поклонник rsync? Достигнуто ли что-то умное с помощью rsync? Мы хотели бы услышать об этом.

Читайте также: