- Как настроить автоматическое резервное копирование/синхронизацию папки c компьютера под управлением ОС Windows на QNAP NAS через протокол Rsync?
- Как использовать Rsync для локальной и удаленной передачи данных и синхронизации
- How to Use Rsync for Local and Remote Data Transfer and Synchronization
- В этом руководстве мы покажем вам, как использовать rsync на практических примерах и подробные объяснения наиболее распространенных вариантов rsync.
- Установка Rsync
- Установите Rsync в Ubuntu и Debian
- Установите Rsync на CentOS и Fedora
- Синтаксис команды Rsync
- Основное использование Rsync
- Как использовать Rsync для синхронизации данных с / на удаленный компьютер
- Исключить файлы и каталоги
- Вывод
- Rsync (gulp-rsync) – настройка deploy сайта на хостинг
- Что такое Rsync и в чём его преимущество?
- Настройка gulp-rsync в Win10
- Настройка SSH аутентификации по открытому ключу
- Используемые материалы и источники:
Как настроить автоматическое резервное копирование/синхронизацию папки c компьютера под управлением ОС Windows на QNAP NAS через протокол Rsync?
Как правило, для резервного копирования или синхронизации данных отлично подходит программа NetBack Replicator, которую вы можете скачать с нашего сайта. В этом случае все задачи репликации будут создаваться и храниться на компьютере в настройках программы, а инициатором копирования является компьютер. Однако в некоторых случаях возникает потребность в том, чтобы процесс копирования запускался на самом сетевом хранилище. Тогда можно использовать встроенную в QNAP NAS службу репликации, которая работает по протоколу Rsync.
В данном примере мы рассмотрим настройки, необходимые для копирования папки D:\Documents\QNAP\RsyncTest на компьютере в папку /Public/RsyncTest/ на сетевом хранилище QNAP через протокол Rsync.
- Настройка Rsync-сервера cwRsyncServer на клиентском компьютере с ОС Windows:
- Скачайте сервер cwRsyncServer с сайта http://www.itefix.no/i2/node/10650;
- Установите на клиентский компьютер cwRsyncServer;
- Откройте файл конфигурации демона Пуск > Все программы > cwRsyncServer > 01. rsyncd.conf;
- Произведите следующие настройки:
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/ - Запустите утилиту для подготовки папки для работы с cwRsyncServer Пуск > Все программы > cwRsyncServer > 02. Prep a Dir for Upload и укажите вашу папку D:\Documents\QNAP\RsyncTest;
- Зайдите в Мой компьютер > Управление > Службы, найдите там службу RsyncServer, включите ее, установите запуск автоматически;
- Проверьте работоспособность сервера, зайдя по локальному адресу компьютера на порт 873 в браузере, например 192.168.1.33:873. Должны появиться следующие строки:
@RSYNCD: 30.0
@ERROR: protocol startup error - На этом настройка Rsync-сервера на компьютере завершена.
- Настройка QNAP NAS:
- Подключитесь к устройству через SSH;
- Выполните команду:
rsync -arv rsync://192.168.1.33/test /share/Public/RsyncTest/ —chmod=Doug+rwx,Foug+rw - Проверьте результат копирования — содержимое папок на компьютере и на NAS’e должно быть одинаковым;
- Далее необходимо настроить расписание, по которому будет производиться синхронизация папок. Для этого потребуется отредактировать системные текстовые файлы, и для этого рекомендуется использовать редактор nano:
- Установите ipkg;
- Перезайдите в командную строку;
-
Чтобы установить nano, введите команды:ipkg update
ipkg install nano
- Создайте скрипт, который будет добавлять записи в crontab
nano -w /share/Public/rsyncInit.sh - Добавьте туда следующие строки:
#!/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. Оно будет иметь вид:
Как использовать Rsync для локальной и удаленной передачи данных и синхронизации
How to Use Rsync for Local and Remote Data Transfer and Synchronization
В этом руководстве мы покажем вам, как использовать rsync на практических примерах и подробные объяснения наиболее распространенных вариантов rsync.
Rsync — это быстрая и универсальная утилита командной строки, которая синхронизирует файлы и папки между двумя местоположениями через удаленную оболочку или из / в удаленный демон Rsync. Он обеспечивает быструю пошаговую передачу файлов, передавая только различия между источником и местом назначения.
Rsync может использоваться для зеркального отображения данных, добавочное резервного копирования, копирования файлов между системами и в качестве замены для scp , sftp и cp команд для повседневного использования.
Установка Rsync
rsync Утилита предварительно установлена на большинстве дистрибутивов и MacOS Linux. Вы можете проверить, установлен ли он в вашей системе, набрав:
Если вы не rsync установили в своей системе, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
Установите Rsync в Ubuntu и Debian
Установите Rsync на CentOS и Fedora
Синтаксис команды Rsync
Прежде чем перейти к использованию rsync команды, давайте начнем с обзора основного синтаксиса.
В rsync полезности выражение принимает следующий вид:
- OPTION — Опции rsync .
- SRC — Исходный каталог.
- DEST — Каталог назначения.
- USER — Удаленное имя пользователя.
- HOST — Удаленное имя хоста от IP-адреса.
rsync предоставляет ряд опций, которые контролируют каждый аспект его поведения. Наиболее широко используемые варианты:
- -a , —archive Режим архива, что эквивалентно -rlptgoD . Эта опция указывает rsync на рекурсивную синхронизацию каталогов, передачу специальных и блочных устройств, сохранение символических ссылок, времени модификации, группы, владельца и разрешений.
- -z , —compress . Эта опция принудительно rsync сжимает данные при их отправке на конечный компьютер. Используйте эту опцию, только если соединение с удаленным компьютером является медленным.
- -P , эквивалентно —partial —progress . При использовании этой опции rsync во время передачи будет отображаться индикатор выполнения и сохраняться частично переданные файлы. Это полезно при передаче больших файлов по медленным или нестабильным сетевым соединениям.
- —delete , При использовании этой опции rsync удаляются посторонние файлы из места назначения. Это полезно для зеркалирования.
- -q , —quiet . Используйте эту опцию, если вы хотите подавить сообщения, не связанные с ошибками.
- -e , Эта опция позволяет вам выбрать другую удаленную оболочку. По умолчанию rsync настроено использование ssh.
Основное использование Rsync
Чтобы скопировать один файл из одного в другое локальное местоположение, вы должны выполнить следующую команду:
Пользователь, выполняющий команду, должен иметь разрешения на чтение в месте назначения и права на запись в месте назначения.
Пропуск имени файла из места назначения копирует файл с текущим именем. Если вы хотите сохранить файл под другим именем, укажите новое имя в целевой части:
В приведенном ниже примере мы создаем локальную резервную копию файлов нашего сайта:
Если каталог назначения не существует rsync , создаст его.
Стоит отметить, что rsync в исходных каталогах по-разному трактуется косая черта / . Если вы добавите косую черту в исходный каталог, он скопирует только содержимое каталога в целевой каталог. Если косая черта не указана, rsync будет скопирован исходный каталог в целевой каталог.
Как использовать Rsync для синхронизации данных с / на удаленный компьютер
При использовании rsync для удаленной передачи он должен быть установлен как на исходном, так и на конечном компьютере. Новые версии rsync настроены на использование SSH в качестве удаленной оболочки по умолчанию.
В следующем примере мы переносим каталог с локального на удаленный компьютер:
Если вы хотите перенести данные с удаленного на локальный компьютер, вам нужно использовать удаленное местоположение в качестве источника:
Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию 22, вы можете указать порт, используя -e опцию:
При передаче больших объемов данных рекомендуется выполнить rsync команду внутри сеанса screen или использовать -P параметр:
Исключить файлы и каталоги
При исключении файлов или каталогов вам необходимо использовать их относительные пути к исходному местоположению.
Есть два варианта, чтобы исключить файлы и каталоги. Первый вариант — использовать —exclude аргумент и указать файлы и каталоги, которые вы хотите исключить, в командной строке.
В следующем примере мы исключая node_modules и tmp каталоги , которые расположены внутри src_directory :
Второй вариант — использовать —exclude-from аргумент и указать файлы и каталоги, которые вы хотите исключить из файла.
Вывод
Из этого руководства вы узнали, как использовать Rsync для копирования и синхронизации файлов и каталогов. Еще много информации о Rsync можно найти на странице руководства пользователя Rsync .
Rsync (gulp-rsync) – настройка deploy сайта на хостинг
Хочу рассказать о том, что такое Rsync и дать подробную пошаговую инструкцию с примерами, как быстро осуществлять deploy (выгрузку) сайтов на свой веб-хостинг с помощью утилиты Rsync (gulp-rsync).
Для работы потребуется:
- Windows 10 и включенная подсистема Ubuntu (bash).
- Установленный Gulp и всё нужное для нормальной его работы в системе.
- Включённый SSH у юзера в ISPmanager5 на вашем хостинге.
, deploy через gulp-rsync не работает в windows ниже версии 10 из-за отсутствия bash… (хнык-хнык).
Что такое Rsync и в чём его преимущество?
Rsync (англ. Remote Synchronization) — программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодирование данных при необходимости. и бла-бла-бла-бла.
А если по-русски, то это:
Мощная утилита, которая позволяет очень быстро и легко «залить» файлы вашего сайта на хостинг. Буквально одной командой gulp rsync всего за несколько секунд будет загружен довольной крупный сайт, обалденно, да?
Выходит, если в проекте использовать Gulp, то такие FTP клиенты, как FileZilla на фоне Rsync выглядят совсем неудобными, убогими, архаичными чудовищами:)
Настройка gulp-rsync в Win10
Настраивается совсем просто:
К вашему проекту подключаем Rsync командой:
В файле gulpfile.js создаём и настраиваем нужный таск (task):
- Где таск «rsync» -> (gulp.task(‘rsync’) может быть заменен на любое другое название, например mynametask , в итоге команда запроса деплоя будет gulp mynametask
- ‘dist/** — берем все файлы из папки dist (Название папки проекта и путь может быть любыми)
- В user666@mydomain.com указываем свой логин в хостинг-панели ISPmanager5, например user777 , и ваш домен под данным юзером.
Подробное описание всех настроек таска rsync в примерах всегда можно найти в официальных источниках.
После вышеуказанной нехитрой настройки при выполнении команды «gulp rsync» в bash, вам будет предложено ввести пароль от вашего юзера на хостинга, вводим и вуаля! Ваш сайт почти моментально появился в интернете!
Как всё просто, да?
Однако можно пойти ещё дальше, избавиться от ввода каждый раз пароля! Для этого надо настроить SSH аутентификацию по открытому ключу. Не пугайтесь страшных слов, просто выполните всё по инструкции, и у вас в ISPmanager5 всё будет работать, как и у меня!
Настройка SSH аутентификации по открытому ключу
Генерация ключа на локальном компьютере:
В папке вашего проекта (где находится ваш файл gulpfile.js) последовательно выполните следующие команды:
Зайдите в сгенерированную папку, где выполните команды:
которые сгенерируют ключ, на все вопросы просто жмите кнопку Enter!
копируете получившийся ключ id_rsa.pub на ваш аккаунт на хостинге (не забывайте менять user666 и mydomain.com на свои!)
Следующей командой подключаетесь уже к своему аккаунту на хостинге для внесения нового ключа в authorized_keys:
Там создайте директорию и установите соответствующие права:
Скопируйте сгенерированный ключ в специальный файл доступа ‘authorized_keys’ и установите на него безопасные права:
Удалите скопированный в корень вашего пользователя ключ, который вы уже добавили в общий файл и завершите вашу сессию командой logout :
Далее остаётся только добавить закрытый ключ в агент аутентификации на локальном компьютере:
Если вы не получили сообщения вида «Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)» , а видите уведомление вроде такого: «Could not open a connection to your authentication agent.» , то запустите агента командой eval :
И заново запустите ssh-add .
На этом настройка окончена!
Уф… как сложно кажется, да? Эти последовательности команд придется выполнять для каждого проекта отдельно, зато тут особо не нужно ничего сочинять, просто делайте всё пошагово по инструкции.
Открываем консоль, вводим команду «gulp rsync» и наблюдаем чудо, всё работает! Пароль более не требуется.
Если всё-таки ваш хостинг продолжает запрашивать пароль, придется более внимательно повторить процедуру заново, значит, где-то ошиблись!
Для быстрого тестирования можно использовать «Start html template on UIKit3 + SASS + Gulp» (ссылка)
Где таск gulp-rsync уже настроен.
Используемые материалы и источники:
Rsync – молниеносный деплой средних и крупных проектов (gulp-rsync) – _webdesign-master.ru/blog/tools/2017-06-13-gulp-rsync.html
Статья написана на базе вышеуказанного источника и адаптирована в первую очередь для хостинг-панели ISPmanager5, все мною проверено лично на примере хостинга LandingHost!
Статья Алексея Климанова адаптирована под другую хостинг-панель и, к сожалению, не подходит для ISPmanager5.
Если эта информация стала для вас полезной, вы можете сказать «спасибо», нажав кнопку вашей любимой социальной сети: