Меню

Локальный сервер синхронизации файлов



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 для копирования файлов в подключенные облачные хранилища.

Источник

Программы для синхронизации файлов и папок

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

Читайте также:  Айклауд синхронизация с виндовс

Windows Handy Backup

Стоит начать с многофункционального приложения Windows Handy Backup, предназначенного для резервного копирования, восстановления и синхронизации операционной системы. Передавать файлы и папки между серверами или персональными компьютерами можно по локальной сети или через протокол FTP по интернету. Помимо этого, программа имеет множество дополнительных возможностей.

Создание резервной копии делится на четыре категории: полная, инкрементная, дифференциальная и смешанная. Более подробнее по каждому варианту можно узнать в русскоязычном руководстве от разработчиков. Стоит упомянуть и о таких функциях, как создание загрузочного диска, планирование задач Windows, использование командной строки и многое другое. Пробная версия работает 30 дней и содержит все возможности Handy Backup. После придется оплатить лицензию, чтобы продолжить пользоваться бэкапером.

SmartSync

Следующее приложение было создано российскими разработчиками и позволяет выполнить множество манипуляций с операционной системой, включая синхронизацию файлов и папок. Поддерживаются как накопители внутри одного устройства и локальные сети, так и сервисы FTP, SFTP, OneDrive, DropBox, Google Drive, Amazon S3, WebDAV и другие. SmartSync Pro работает с ZIP-архивами и может как создавать их, так и считывать.

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

Allway Sync

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

Предусмотрено несколько языков интерфейса, а само приложение всегда подключено к серверам разработчика и автоматически обновляется в случае выхода новой версии. Среди поддерживаемых протоколов FTP, WebDAV и MS ActiveSync. Бесплатная версия не ограничивает пользователя в опциях, однако допускает дублирование не более 20 тысяч файлов за 30 дней.

GoodSync

GoodSync — простое приложение для синхронизации и резервного копирования файлов на всех популярных операционных системах. Поддерживаются протоколы FTP, WebDAV, OneDrive, Office 365 и Google Drive. Помимо этого, есть версия клиента как на ПК, так и на мобильные устройства (Android и iOS). Как и в предыдущем случае, эта программа тоже имеет автоматическую службу, работающую в фоновом режиме.

Рассматриваемое решение использует продвинутые технологии, позволяющие обнаруживать даже перемещенные и/или переименованные файлы, после чего синхронизировать их на других подключенных устройствах. Поддерживается перенос даже тех данных, которые открыты в настоящий момент (обычно операционная система запрещает подобные действия). Синхронизируются не только компьютеры и носители, но и смартфоны. Программа платная, имеется несколько вариантов покупки: помесячная подписка, полная оплата, а также расширенные версии для предприятий.

FreeFileSync

Следующая программа поддерживает работу с «тяжелыми» файлами размером более 4 ГБ. При работе FreeFileSync сравниваются не только названия файлов, но и их размеры, даты изменения и метаданные. Автоматически определяет конфликтующие данные и предлагает пользователю варианты решения. Поддерживается передача папок как через локальную сеть, так и через интернет.

В FreeFileSync несколько типов синхронизации: автоматическая, ручная, зеркальная и режим обновления, в котором приложение находит переименованные или перенесенные файлы, после чего синхронизирует их. Среди дополнительных функций стоит отметить командную строку, опцию «drag & drop», установку фильтров и критериев сравнения, а также сбор статистики работы приложения. Доступна русская локализация, при этом программа бесплатна.

PureSync

PureSync — еще одно удобное решение для синхронизации данных и создания их резервной копии. В бесплатной версии реализована работа только в локальной сети и со съемными накопителями, однако при покупке лицензии появляется поддержка FTP и других протоколов.

Читайте также:  Remotefork синхронизация с телевизором

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

SyncBackFree

SyncBackFree — еще один комплексный вариант для синхронизации файлов и папок на компьютере. Поддерживается работа со съемными устройствами (флэш-карты, жесткие диски и т. п.), внутри локальной сети, а также по FTP-протоколу. Работа с приложением происходит с помощью удобного планировщика, где пользователь сам устанавливает регулярность синхронизации. Можно делать ее каждый день, раз в неделю или раз в месяц.

Ручное вмешательство здесь практически не требуется. Достаточно установить все параметры при первом входе и не вспоминать о SyncBackFree, пока не понадобится изменить какие-то настройки. А сложность интерфейса упрощается наличием русского языка.

PowerFolder

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

Демо-версия PowerFolder имеет ограниченные функции и может усложнить работу. При этом пользователю предоставляется 5 ГБ облачного пространства, которое можно применить в качестве дополнительного инструмента для синхронизации. Приложение работает с любыми типами данных от обычных документов до исполняемых файлов. Для получения пробной лицензии необходимо зарегистрироваться на сайте разработчика.

Create Synchronicity

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

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

Resilio Sync

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

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

Exiland Backup

Exiland Backup — многофункциональное ПО от отечественных разработчиков с поддержкой русского, украинского, белорусского и других языков. Предусмотрено три вида лицензии: бесплатная, стандартная и профессиональная. Первая позволяет создавать выборочные и полные резервные копии, а также синхронизировать устройства. Однако в ней можно подключать только один компьютер (помимо исходного) и только по локальной сети. Реализована система уведомлений и планировщика задач.

В более продвинутых версиях за плату открывается возможность выбирать виды синхронизации и резервного копирования, подключать более одного ПК и сервера, появляется поддержка протоколов FTP и SSH, Яндекс.Дикса (WebDAV), Outlook и многое другое. Для ознакомления со всеми функциями имеется демо-версия. Если вам нужно выполнить синхронизацию в качестве разовой процедуры, это отличный вариант.

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

Источник

Adblock
detector