Настройка rsync под виндовс. Синхронизация файлов между Windows серверами RSync. Как сделать синхронизацию папки c Linux на Windows
Настройка rsync под виндовс. Синхронизация файлов между Windows серверами RSync. Как сделать синхронизацию папки c Linux на Windows
Решение для резервного копирования, основанное на реализации rsync для Windows , используют популярную технологию синхронизации файлов и папок , находящихся в разных местах сети, с минимальным объёмом передаваемых данных.
Технология Rsync бэкапа
Название технологии копирования rsync (remote synchronization) – дословно: «удалённая синхронизация». Она изначально разрабатывалась, как приложение для Unix. Существует аналог rsync для Windows, cwrsync . Итак, каковы же преимущества резервного копирования rsync для бэкапа и синхронизации в Windows?
Рабочие папки: файлы, которые всегда с тобой
Давайте теперь подробно разберем, как настроить рабочие папки на сервере, рабочем компьютере пользователя и на его личном устройстве. Для этого я использую три машины – сервер и два клиентских хоста. Сервер и один из хостов включены в домен, второй хост является личным устройством пользователя. Характеристики сервера и хостов представлены ниже:
- Настройка сервера
- Установка роли Рабочие Папки (Work Folders)
- Создание общего ресурса синхронизации (Sync Share)
- Включение доступа по SMB (дополнительно)
- KB2883200
- KB2894179
- KB2894029
1. Настройка сервера
1.1. Установка роли Рабочие Папки (Work Folders)
Прежде всего, нужно установить роль Рабочие Папки (Work Folders) на сервер. Сделать это можно с помощью мастера добавления ролей и компонентов:
Данную операцию также можно выполнить с помощью команды PowerShell:
1.2. Создание общего ресурса синхронизации (Sync Share)
После того, как Рабочие папки установлены на сервер, их необходимо настроить для пользователей. Для этого в Диспетчере серверов (Server Manager) переходим во вкладку Файловые службы и службы хранилища (File and Storage Services) и оттуда к Рабочим папкам (Work Folders). Далее необходимо создать новый общий ресурс синхронизации (Sync Share). Общий ресурс синхронизации (Sync Share) сопоставляет локальный путь к месту размещения папок пользователей и группы пользователей, которые имеют доступ к общему ресурсу синхронизации. В мастере создания ресурса нужно выбрать сервер (у нас это WFServer) и указать локальный пусть к месту на диске, где и будут храниться пользовательские папки (C:SalesShare).
Далее выбираем формат имени папок пользователя. Мы можем выбрать, в зависимости от необходимости, использование просто алиаса пользователя tuser2 или же адреса пользователя tuser2@mva.com (если хотим устранить конфликт одинаковых алиасов пользователей в разных доменах).
Кроме того, администратор может установить, что только определенная подпапка должна быть синхронизирована на устройствах. Для этого необходимо выбрать пункт «Sync only the following subfolder» и ввести имя папки.Далее укажем имя для общего ресурса синхронизации:
На следующем этапе, необходимо указать группу пользователей, которой будет предоставлен доступ к создаваемому ресурсу. В нашем случае, это ранее созданная группа Sales. По умолчанию, администратор не имеет прав на доступ к данным пользователя на сервере.
Если вы хотите сделать эту возможность доступной, необходимо сделать неактивным пункт «Disable inherited permission and grant users exclusive access to their files».
Далее определяем нужные нам правила безопасности для устройств, на которых будут использоваться Рабочие Папки.
Проверим еще раз информацию.
И перейдем к установке.
Создать общий ресурс синхронизации возможно также с помощью команды PowerShell:
В итоге, мы должны получить вот такой результат:
1.3. Включение доступа по SMB (дополнительно)
Если вы хотите включить доступ к папке по SMB, вы должны через Проводник зайти в место расположение папки SalesShare, и с помощью правой кнопки мышки выбрать пункт «Share with» -> «Specific people». Добавьте группу MVASales и измените права доступа на «Read/Write»:
Кстати, после того, как вы включили доступ к папке по SMB, время синхронизации было установлено по умолчанию на каждые 5 минут. Чтобы это изменить, можно использовать следующую команду PowerShell:
2. Настройка клиента, включенного в домен
Теперь перейдем к настройке Рабочих папок на клиентских машинах. Установить Рабочие папки можно с помощью: Панель управления (Control Panel) -> Система и безопасность (System and Security) -> Рабочие папки (Work Folders).
Введите E-mail адрес пользователя.
Укажите, где на устройстве должны быть расположены рабочие папки.
Подтвердите согласие с требуемыми правилами безопасности. Кстати, здесь хочу добавить, что файлы буду шифроваться и в случае, если операционной системой устройства является Windows RT 8.1.
Теперь рабочие папки установлены на устройство.
Администратор при этом контролирует сколько место доступно на сервере пользователю, и, следовательно, сколько информации может быть синхронизировано.
Теперь мы можем создать файл в Рабочей папке, чтобы потом посмотреть, как будет проводится синхронизация.
3. Настройка Рабочих Папок (Work Folders) на личном устройстве
Настройка рабочих папок на личных устройствах отличается только на одном шаге. На этапе добавления пользователя на личном устройстве будут запрошены доменные логин и пароль пользователя.
После завершения установки, открыв Рабочую папку мы увидим синхронизированный файл, созданный нами на доменном клиенте:
4. Синхронизация файлов в Рабочих Папках (Work Folders)
Теперь посмотрим, как же синхронизируются файлы в Рабочих Папках, если одновременно, на двух машинах редактируется один и тот же файл.
В этом случае, оба файла будут сохранены и синхронизированы с указанием имени компьютера, на котором производились изменения. Далее пользователь уже самостоятельно должен решить объединить ли эти файлы, или какой из них необходимо удалить.Давайте познакомимся с программой синхронизации данных Arcserve Replication
Программа синхронизации Arcserve Replication (ранее – CA XOsoft™ Replication) обеспечивает непрерывную синхронизацию информационных систем на операционных системах Windows, Linux и UNIX.
Обладая богатым функционалом управления синхронизации, Arcserve Replication предоставляет возможность синхронизации данных по расписанию или по запросу, помогая сбалансировать загрузку сети и достичь требуемого уровня защиты данных.
Набор специализированных шаблонов для репликации приложений (Oracle Database, Microsoft Exchange, Microsoft SQL, файловые серверы, Microsoft Dynamic CRM и т.д.) дает возможность в считанные минуты организовать синхронизацию критически-важных приложений в архивную площадку.
Функция Data Rewind позволяет быстро восстановить данные после случайной или умышленной утраты либо повреждения, а также в случае краха хранилища из-за любых технологических факторов или стихийного бедствия.
Синхронизация в режиме «один к одному», «многие к одному» или «один ко многим» обеспечивает большую гибкость и позволяет сократить издержки на восстановления данных после сбоя.
Программа синхронизации данныхArcserve Replication предоставляет централизованное управление, поддерживает серверы, приложения и данные в средах Windows®, Linux® и UNIX® как на физических, так и на виртуальных серверах, отлично дополняя любое используемое решение для резервного копирования.
Основные функции программы синхронизации Arcserve Replication
Программа синхронизации Arcserve Replication обладает богатым набором функций, которые отвечают за выполнение задач защиты данных в реальной середе, осуществление стратегий непрерывности бизнеса и восстановления после сбоев. Вне зависимости от того, сколько серверов нужно защитить – один или тысячи, вы получаете масштабируемую систему, которая растет вместе с вашим бизнесом. Забудьте об отчаянных звонках в 2 часа ночи воскресенья.
Теперь вы защищены 24 часа в сутки, 7 дней в неделю, 365 дней в году. Программа синхронизации Arcserve Replication входит в семейство продуктов Arcserve, которые обеспечивают комплексную всестороннюю защиту, восстановление и доступность систем, приложений и данных.
ОПТИМИЗИРОВАННАЯ СИНХРОНИЗАЦИЯ ДАННЫХ
Синхронизация папок серверов, приложений и данных в средах Windows, Linux и UNIX использует технологию синхронизации изменных блоков. Использование этой технологии позволяет понизить трафик синхронизации данных до минимально возможных значений.
Функция ограничения полосы пропускания канала для синхронизации по времени дает возможность уменьшить трафик синхронизации в рабочие часы офиса и максимально использовать возможности канала связи в нерабочие часы.
Такой вид синхронизации упрощает и ускоряет копирование данных и резервных копий во внешние хранилища для аварийного восстановления, миграции физического сервера на виртуальную машину, а также консолидацию данных из удаленных офисов для создания надежных централизованных резервных копий и защиты в удаленном расположении
ПОДДЕРЖКА СИНХРОНИЗАЦИИ ВИРТУАЛИЗИРОВАННЫХ СЕРВЕРОВ
необходимый компонент для любой среды виртуализации серверов – обеспечивает репликацию на уровне виртуальной машины VMware ESX и VMware vSphere™, гипервизора и гостевой машины Microsoft® Hyper-V™, а также гостевой машины Citrix® XenServer. ARCserve Replication — это единое решение для физических и виртуальных серверов, предоставляющее необходимую масштабируемость и гибкость.
ОБЪЕДИНЕННАЯ КОНСОЛЬ УПРАВЛЕНИЯ
это веб-консоль программы Arcserve Replication, которая упрощает развертывание, управление и получение отчетов во всех поддерживаемых физических и виртуальных средах, работающих под управлением Windows, UNIX и Linux.
Функция ARCSERVE ASSURED RECOVERY
позволяет проводить в среде Windows автоматическое, не нарушающее работы пользователей тестирование на уровне приложения, чтобы убедиться в готовности системы к восстановлению данных. Она максимально использует серверы-реплики для ручного тестирования и получения отчетов, поддерживая репликацию в режиме реального времени и непрерыв ную защиту данных.
Функция DATA REWIND
обеспечивает непрерывную синхронизацию данных с ведением журнала изменных данных. Это дает возможность быстрого восстановления утраченных или поврежденных данных и баз данных, дополняя технологии периодического резервного копирования и снимков состояния системы.
АВТОНОМНАЯ СИНХРОНИЗАЦИЯ ДАННЫХ
является альтернативой синхронизации по локальной или глобальной сети – облегчает передачу больших массивов данных в Windows и баз данных. Эта функция позволяет сократить время, в течение которого системы остаются без защиты, не влияя на загрузку сети.
Она обеспечивает перенос копии данных на физический носитель в ходе репликации.НАСТРАИВАЕМАЯ ЗАЩИТА ПРИЛОЖЕНИЙ
позволяет создавать сценарии репликации и обеспечения высокой доступности с помощью мастера; функция подходит для сторонних и пользовательских приложений Windows, во многих случаях без необходимости писать скрипты
МНОГОПОТОКОВАЯ СИНХРОНИЗАЦИЯ
Arcserve Replication позволяет использовать несколько потоков данных для увеличения пропускной способности при репликации по глобальным сетям с большим временем отклика.
СИНХРОНИЗАЦИЯ НА УРОВНЕ ПРИЛОЖЕНИЙ
это автоматическое конфигурирование, которое ускоряет и упрощает развертывание, обеспечивает транзакционную целостность в Microsoft Exchange, SQL Server®, SharePoint®, Internet Information Services (IIS), Microsoft Dynamics CRM, Oracle и BlackBerry®.
Она поддерживает также файл-серверы, работающие под управлением Windows, Linux и UNIX – все из единой консоли управления.
Другие приложения и данные Windows можно защитить при помощи мастера защиты пользовательского приложения или путем создания простого скрипта. Кроме того, можно обеспечить защиту приложений Linux и UNIX посредством написания простого скрипта.ИНТЕГРАЦИЯ С ARCSERVE® BACKUP
позволяет совместить репликацию данных в Windows с созданием резервных копий — оба процесса управляются из единой консоли.
Rsync — копирование и синхронизация файлов с удаленным сервером
Утилиту Rsync можно использовать для копирования и синхронизации файлов и папок с локального сервера Linux на удаленный и наоборот. Rsync позволяет копировать ваши данные между серверами внутри защищенного SSH соединения. Так же, rsync, поддерживает сжатие данных на лету, что повышает производительность системы.
Чтобы исключить потерю информации при отправке файлов, rsync сначала копирует всю передаваемую информацию во временный файл. Другая важная особенность rsync – файлы передаются в один поток, не создается отдельный поток для каждого файла (что вызывает проблему при передаче большого количества маленьких файлов в других утилитах).
В данной статье мы рассмотрим варианты использования rsync для синхронизации и копирования каталогов и файлов, и приведем примеры его расширенных настроек.
Установка и основные параметр rsync
Установка rsync не отличается от установки, любого другого пакета. В CentOS пакет rsync присутствует в базовом репозитории и устанавливается через yum (или dnf в CentOS 8):
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 можно использовать для копирования файлов между локальными директориями сервера. Если вам нужно скопировать файлы из одной директории в другую, выполните команду:
В этом случае файл test.txt был просто скопирован в директорию /root/temp/
Можно добавить несколько опций для выполнения копирования. Например, чтобы перед выполнением копирования предварительно сжать файл, вывести подробную информацию и прогресс копирования файла, выполните:
Мы можем использовать rsync для синхронизации содержимого локальных каталогов. Например, rsync удобно использовать, когда вам требуется скопировать файлы из рабочей директории, на хранилище, которое примонтировано к какому-то разделу.
Мы скопировали директорию /root/.config в директорию для резервных копий, опция -r позволила рекурсивно скопировать все вложенные директории и файлы.
Чтобы сохранить все атрибуты файлов при копировании, например, дату изменения и дату создания файлов, добавьте ключ -a:
Если вы хотите скопировать только измененные файлы, добавьте опцию -c:
Я изменил только один файл и запустил команду. В результате в целевую директорию, был скопирован только измененный файл.
Настройка синхронизации с удаленным сервером
Чаще всего копирование/синхронизация rsync с удаленным сервером используется для резервного копирования или синхронизации конфигурации нод кластера. Можно выполнять автоматическую синхронизацию данных с рабочего сервера на резервный, и в случае проблем на продуктивном севере быстро все перевести на резервный. Это довольно удобный и простой в настройке вариант.
В современных версиях rsync протокол SSH используется для передачи файлов по-умолчанию. Однако вы можете использовать и демон rsyncd. Для этого клиент rsync должен быть установлен на удаленном компьютере, и его демон добавлен в автозагрузку:
Конфигурационный файл rsync — /etc/rsyncd.conf. В этом файле можно настроить параметры rsync и настройки для синхронизации для разных ресурсов.
Для синхронизации через демона rsync адрес удаленного сервера указывается так rsync://. Например:
Чтобы скопировать файл на удаленный сервер, используйте команду:
После запуска команды, удаленный сервер запросит пароль пользователя (если включена авторизация по паролю). Для автоматической авотризации нужно настроить SSH ключи.
Скопируем директорию с локального сервера на удаленный:
То есть, все тоже самое, что и с локальными директориями, только мы указываем адрес удаленного сервера.
Так же вы можете синхронизировать файлы и с удаленного сервера на локальный, команда для этого немного изменится:
Для принудительного использования SSH протокола для копирования файлов, укажите это в вашей команде (для выбора транспортного протокола копирования файлов используется опция –e):
Если удаленный SSH сервер имеет отличный от стандартного порт, его так же можно указать:
Другие примеры использования rsync
Если в рамках сессии синхронизации вы передаете много информации и важно ограничить скорость передачи, задайте это дополнительной опцией –bwlimit (указывается скорость в КБ/с):
При передаче файлов на удаленный сервер, вы можете ограничить максимальный размер файлов, которые нужно скопировать. Например, вы хотите скопировать все файлы, кроме файлов размером более 1 Мб:
Если у вас на сервере нужна односторонняя синхронизация и после переноса файлов на удаленный сервер нужно удалить файлы с исходного сервера, воспользуйтесь опцией -remove-source-files:
После выполнения команды, файл был скопирован на удаленный сервер и удален на источнике.
Так же очень удобный опции —include и —exclude, с помощью этих опций, можно делать исключения по копированию директорий или файлов:
В данном случае мы исключили директорию “administrator” при копировании на удаленный сервер.
Добавлением опции —include мы смогли задать фильтр по файлам, скопировали только файлы с расширением php.
Резервное копирование в Linux с помощью rsync
В своей рабое я часть использую rsync для автоматических задач резервного копирования в Linux. Можно написать простые bash скрипты или просто добавить команду rsync в cron и выполнять по расписанию.
Например, можно добавить в cron команду:
01 30 * * * rsync -zvra root@192.168.1.1:/backup/ /backup
В результате каждый день в 1:30 ночи, будет выполняться синхронизация каталогов локального и удаленного серверов.
Стоит учесть, что для выполнения команды rsync на удаленном сервер через cron, желательно настроить авторизацию серверов по SSH ключу. Примеры скриптов для бэкапа, мы приводили в статье «Скрипты для бэкапа файлов из Linux в облако», там как раз используется rsync для копирования файлов в подключенные облачные хранилища.
Как настроить рабочую группу Ubuntu
В большинстве случаев вам не нужно менять имя рабочей группы, потому что по умолчанию Ubuntu, Windows и Mac OS имеют одно и то же имя рабочей группы, которое на самом деле WORKGROUP. Однако, если вам нужно изменить его, выполните следующие действия.
Откройте окно терминала (CTRL + ALT + T) и выполните следующую команду: s udo gedit /etc/samba/smb.conf . Затем нажмите Enter. Если вы ранее не использовали Терминал в этом сеансе, Ubuntu попросит вас ввести пароль вашей учетной записи.
Затем файл конфигурации Samba открывается в окне gedit . При необходимости прокрутите вниз, пока не найдете строку рабочей группы в разделе «Глобальные настройки».
Измените значение рабочей группы Ubuntu, чтобы оно соответствовало имени рабочей группы, в которую вы хотите добавить свой компьютер Ubuntu. Затем нажмите «Сохранить» и перезапустите Ubuntu, чтобы убедиться, что новые настройки применены.
ПРИМЕЧАНИЕ. Если у вас есть сеть, в которую входят компьютеры с Windows, вам необходимо убедиться, что рабочая группа настроена так же, как на ваших компьютерах с Ubuntu. Сделайте это, если хотите, чтобы ваши ПК с Ubuntu присоединились к вашей рабочей группе Windows. Чтобы узнать, как это сделать, ознакомьтесь с этим руководством: Рабочая группа Windows 10 и как ее изменить.
VS Code says "Unable to write settings."
If you try to change a setting (for example turning on Auto Save or selecting a new Color Theme) and you see "Unable to write settings. Please open User Settings to correct errors/warnings in the file and try again.", it means your settings.json file is ill-formed or has errors. The errors can be as simple as a missing comma or setting value. Open the Settings editor File > Preferences > Settings (Code > Preferences > Settings on macOS) ( ⌘, (Windows, Linux Ctrl+, ) ) and you should see the error highlighted with red squiggles.
How can I reset my user settings?
The easiest way to reset VS Code back to the default settings is to clear your user settings.json file contents in the Settings editor. Delete everything between the two curly braces, save the file, and VS Code will go back to using the default values.
When does it make sense to use workspace settings?
If you’re using a workspace that needs custom settings but you don’t want to apply them to your other VS Code projects. A good example is language-specific linting rules.