Ограничим rsync по ssh
Случается нужно разрешить работу по ssh, удалённо и без пароля, только определённого для каталога и хоста, исключив копирование чего-либо в другие места или из других мест.
Например, вы хотите чтобы можно было скопировать файлы на сервер только с хоста , только и только в каталог , и только с этими опциями:
То сначала нужно получить команду, которую выполняет при вызове ssh на удаленном хосте:
Соответственно, в на следует добавить для известного ssh ключа запуск этой команды по умолчанию при подключении:
Таким образом, даже если при запуске будут указаны какие-то другие опции, на сервере-назначении всё равно выполнится команда соответствующая исходным, заданным вами, опциям и настройкам.
Если нужно чтобы ваш бекап нельзя было перезаписать или удалить на сервере назначения, то опцию следует заменить на .
Копируем частично
Наверняка вам когда-нибудь понадобится чтобы пропускал некоторые файлы при копировании.
В самом простейшем случае вам нужно чтобы rsync не копировал файлы разных систем контроля версий, включая каталог вроде и . В этой задаче вам не нужно ничего кроме ключа (или в полной форме). Так файлы большинства популярных VCS будут проигнорированы будто их нет. Не забываем использовать при первом запуске.
Может получиться так что вы, по ошибке, скопируете кучу таких файлов от VCS. В этом случае для получения чистой копии вам пригодится ключ , с которым все исключенные файлы будут удалены.
Исключаем через .rsync-filter
Если нужные более гибкие правила, что особенно актуально если копирование делается регулярно, то лучше не мелочиться и оформить все исключения в файле .
Для исключения чего-либо из списка на перенос нужно добавить в этот файл строчку с правилом ( или в начале строки).
-
Если нужно исключить конкретный файл, где бы он ни был в любом каталоге ниже по иерархии, то укажем просто имя файла.
-
Если нужно исключить файл или каталог относительно каталога в котором находится , то укажем со слешем в начале:
-
В правилах звездочка соответствует любым символам кроме слеша, а две звездочки соответствуют вообще любым символам:
-
Наконец, если нужно чтобы какие-то файлы всё-таки копировались, не смотря на ранее заданные правила, то их можно отметить правилом в начале строки.
Файлы команда умеет искать по всей структуре каталогов будучи запущена с ключём .
Если нужно чтобы сами эти файлы не копировались, то нужно указать этот ключ два раза так:
Как видите, лишние файлы не скопировались:
Для чего нужно резервное копирование
Резервное копирование ваших файлов, таких как личные документы, фото и видео, защитит их от утраты в результате случайного удаления, сбоя в операционной системе, действия вирусов или повреждения жесткого диска.
Помните! Если вы не будете выполнять резервное копирование ваших файлов, то рано или поздно вы их потеряете!
Другой целью резервного копирования может быть синхронизация ваших файлов между несколькими компьютерами. Например, вы можете работать с одними и теми же файлами дома и на работе и вам нужно, чтобы на домашнем и рабочем компьютере файлы обновлялись по мере их изменения, создания или удаления.
Также регулярное резервное копирование файлов значительно упростит восстановление компьютера в случае сбоя. Вам достаточно будет восстановить образ операционной системы, а все файлы уже надежно сохранены в резервной копии и вам не придется тратить много времени и усилий для их восстановления.
Резервное копирование по расписанию
В качестве альтернативы утилите RealTimeSync можно использовать «Планировщик заданий Windows», который не имеет всех перечисленных недостатков и обладает более гибкими возможностями.
Зайдите в «Панель управления\Система и безопасность\Администрирование» и выберите «Планировщик заданий» или «Расписание выполнения задач».
Выберите «Создать простую задачу».
Введите осмысленное имя задачи и кликните на кнопку «Далее».
Выберите как часто вы хотели бы производить резервное копирование.
Рекомендуется выбрать «Ежедневно» или «Еженедельно» в зависимости от частоты изменения файлов на вашем компьютере и соображений удобства.
Затем определите более точно день и время, в которые компьютер с большой вероятностью будет включен для выполнения синхронизации. Например, каждую пятницу в 17:00.
Выберите действие для задачи «Запустить программу».
Нажмите кнопку «Обзор».
Выберите файл пакетного задания, созданный в программе FreeFileSync.
Нажмите «Далее».
Нажмите кнопку «Готово».
Теперь резервное копирование файлов будет выполняться чётко в назначенный день и время. Если компьютер в это время окажется выключен, то задание будет выполнено при следующем его включении. Позаботьтесь только о том, чтобы носитель резервных копий был доступен в нужное время.
Удалить или изменить настройки резервного копирования можно в любое время в «Библиотеке планировщика заданий».
Сам файл пакетного задания также можно менять в любое время независимо от планировщика с помощью программы FreeFileSync.
Вы также можете создавать неограниченное количество пакетных заданий синхронизации и заданий в планировщике с самыми различными настройками и планами резервного копирования.
На этом всё, храните ваши файлы на надежных носителях и не пренебрегайте резервным копированием.
Другие полезные опции
—delete / —delete-after / —del (—delete_during)
Если мы делаем ежедневные резервные копии и не хотим засорять удаленный сервер лишними файлами (которых уже нет в источнике), то мы можем использовать опцию —delete:
rsync -avz -e "ssh -p 2013" --delete ./somedir :/home/bkp/
В результате будет удален файл, которого больше нет в директории источника (в somedir):
rsync -avz -e "ssh -p 2013" --delete ./somedir :/home/bkp/ 's password: sending incremental file list deleting somedir/lolo somedir/ sent 159 bytes received 77 bytes 67.43 bytes/sec total size is 2,041,319 speedup is 8,649.66
По умолчанию, rsync сначала выполняет удаление файлов перед копированием для уверенности, что хватит свободного места на приемной стороне (т.е. использует по умолчанию —delete-before). Если мы хотим удалять файлы после копирования, используйте параметр —delete-after.
Если мы хотим хотим удалять файлы в процессе передачи, а не перед, то можно использовать опцию —del (—delete_during). Это поможет сэкономить немного ресурсов и времени.
Кстати, это не все «delete» параметры, которые есть, вот их полный список с кратким описанием:
А если вам по какой-то причине не нужно обновлять файлы на принимающем сервере, вместо опции —del.. можно использовать опцию —ignore-existing.
—no-perms —no-owner —no-group
Иногда нам может потребоваться не переносить атрибуты (права файлов, пользователя и группу пользователя). Для этого мы можем воспользоваться опциями —no-p —no-o —no-g (оно же —no-perms —no-owner —no-group):
rsync -avz -e "ssh -p 2013" --no-p --no-o --no-g ./somedir
Важно соблюдать порядок (особенности работы «—no-OPTION» в rsync)
—inplace
По умолчанию rsync, при копировании существующего файла создает его новую версию, а потом заменяет старый файл на новый. Это сделано для того, чтобы исходный файл не пострадал в случае каких-то перебоев. Данная опция позволяет изменить это поведение таким образом, чтобы rsync сразу начал перезапись старого файла. Опция полезна при копировании больший файлов на одном компьютере:
rsync -av --inplace ./Видео.mp4 ./vidinplace.mp4
-W, —whole-file
Эта опция будет полезна, если мы копируем файлы с нагруженного или слабого сервера, так как она отключает дифференциальный алгоритм rsync’а и с ним весь файл передается как есть, целиком, не тратя время CPU на вычисления.
Rsync примеры синхронизации: основное использование
Давайте создадим две директории внутри / tmp, называемые «foo» и «bar», и создадим большое количество фиктивных файлов внутри / tmp / foo
Теперь у нас есть 100 файлов в / tmp / foo; / Tmp / bar все равно не должно быть. Мы можем использовать rsync для копирования всех файлов из / tmp / foo в / tmp / bar:
Используя базовое файловое расширение, мы можем захватить все файлы и скопировать их в другой каталог. Что делать, если есть каталог внутри / tmp / foo? Он не будет передан. Нам нужно будет использовать флаг -r (-рекурсивный), чтобы пройти по каталогу, передав каждый файл внутри:
Это очень простой пример и даже не затрагивает реальную силу команды rsync. Существуют флаги для сохранения разрешений, владельцев, групп, символических ссылок и т. Д. Поскольку эти флаги так часто используются, флаг -a (-archive) действует как псевдоним, чтобы включить их все, включая -r.
Очистите / tmp / bar, создайте символическую ссылку на один файл в / tmp / foo и используйте rsync для рекурсивной копирования всех файлов:
Мы видим, что rsync опустил символическую ссылку, которую мы создали. Снова очистите / tmp / bar, и давайте попробуем еще раз, на этот раз с использованием флага -a:
Используйте chown для изменения права собственности на файл в / tmp / foo другому пользователю и скопируйте файлы, используя -a to / tmp / bar
Запустите ls -l и обратите внимание, что право собственности перемещено вместе с файлом. Удобный материал!
ПРИМЕЧАНИЕ. Существует разница между включением косой черты (/) в конце пути источника и ее отсутствием; Первый передаст все файлы ВНУТРИ указанного каталога, в то время как последний передаст сам каталог со всеми файлами внутри.
Установка rsync на CentOS 8
Чаще всего rsync уже присутствует в базовой версии centos 8, но скорее всего без версии, работающей в качестве службы. Так что устанавливаем обоих:
# dnf install rsync rsync-daemon
Если у вас еще нет настроенной системы, то используйте мои статьи по установке и настройке centos 8. Запускаем rsyncd и добавляем в автозагрузку.
# systemctl enable --now rsyncd Created symlink /etc/systemd/system/multi-user.target.wants/rsyncd.service → /usr/lib/systemd/system/rsyncd.service.
Проверяем автозагрузку:
# systemctl list-unit-files --type service | grep rsyncd rsyncd.service enabled
Проверяем, слушает ли служба сетевой порт.
# netstat -tulpn | grep rsync tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 40814/rsync tcp6 0 0 :::873 :::* LISTEN 40814/rsync
Все в порядке, можно приступать к настройке rsync. Если вам не нужен ipv6, то можете его отключить.
Настройка rsync
Теперь приступаем к настройке. Логика наших бэкапов будет следующая. При первом запуске мы делаем полный бэкап интересующей нас информации в папку current. Потом раз в сутки мы сверяем имеющийся архив с источником и делаем его вновь актуальным, перезаписывая все изменившиеся файлы, но при этом не удаляем их, а складываем в папку increment, где каждый день создается папка с именем в виде даты, в которую складываются все измененные файлы за текущий день. Таким образом, у нас всегда будет полный архив, актуальный на момент последней синхронизации, плюс набор папок за каждый день с изменившимися в этот день файлами. Сколько дней хранить, можно выбрать по необходимости.
Получается у нас такая картинка:
При этом подключение и работа rsync будет проходить по своему отдельному порту tcp 873. Не забудьте настроить iptables и открыть этот порт. Приступаем к реализации. В первую очередь настраиваем rsync на серверах источниках информации, с которых мы будем забирать данные для backup.
Создаем файл конфигурации rsync:
# mcedit /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid log file = /var/log/rsyncd.log transfer logging = true munge symlinks = yes # папка источник для бэкапа path = /data uid = root read only = yes list = yes comment = Data backup Dir auth users = backup secrets file = /etc/rsyncd.scrt
Создаем файл с учетными данными для подключения:
# mcedit /etc/rsyncd.scrt
backup:12345
где backup – имя пользователя, 12345 – пароль.
Делаем права на чтение только root, иначе rsync не запустится:
# chmod 0600 /etc/rsyncd.scrt
После настройки перезапускаем rsync. На Centos:
# systemctl restart rsyncd
На Debian/Ubuntu:
# systemctl restart rsync
Теперь идем на сервер приемник, в котором будут храниться архивные копии с серверов источников. Там создаем скрипт инкрементного бэкапа c использованием rsync:
# mcedit /root/bin/backup-server1.sh
#!/bin/bash date # Папка, куда будем складывать архивы syst_dir=/backup/ # Имя сервера, который архивируем srv_name=server1 # Адрес сервера, который архивируем srv_ip=10.10.1.55 # Пользователь rsync на сервере, который архивируем srv_user=backup # Ресурс на сервере для бэкапа srv_dir=data echo "Start backup ${srv_name}" # Создаем папку для инкрементных бэкапов mkdir -p ${syst_dir}${srv_name}/increment/ # Запускаем непосредственно бэкап с параметрами /usr/bin/rsync -avz --progress --delete --password-file=/etc/rsyncd.scrt ${srv_user}@${srv_ip}::${srv_dir} ${syst_dir}${srv_name}/current/ --backup --backup-dir=${syst_dir}${srv_name}/increment/`date +%Y-%m-%d`/ # Чистим папки с инкрементными архивами старше 30-ти дней /usr/bin/find ${syst_dir}${srv_name}/increment/ -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; date echo "Finish backup ${srv_name}"
Делаем скрипт исполняемым:
# chmod 0744 /root/bin/backup-server1.sh
Создаем файл с паролем для авторизации на сервере источнике:
# mcedit /etc/rsyncd.scrt
12345
Делаем права на чтение только root, иначе rsync выдаст ошибку:ERROR: password file must not be other-accessible
Исправляем это:
# chmod 0600 /etc/rsyncd.scrt
На этом все, теперь можно запускать скрипт и ожидать его выполнения. Если получите ошибку на клиенте:
rsync: opendir "/." (in data) failed: Permission denied (13)
и вот эту на сервере:
SELinux is preventing rsync from getattr access on the file
Проверьте настройки SELinux. Это он блокирует доступ к файлам. Нужно либо отключить selinux, либо настроить. В данном случае настройка простая:
# setsebool -P rsync_full_access on
Осталось добавить скрипт в cron:
# mcedit /etc/crontab
30 23 * * * root /root/bin/backup-server1.sh
Я обычно создаю несколько скриптов для каждого сервера отдельно. Потом объединяю их запуск в одном общем скрипте и уже его добавляю в cron. А потом по мере необходимости редактирую уже его, добавляю или удаляю сервера.
How to Exclude Files and Directories with Rsync
21 Июня 2020
|
Терминал
Rsync — это быстрая и универсальная утилита командной строки, которая синхронизирует файлы и папки между двумя местами удаленной оболочки.
С Rsync вы можете зеркалировать данные, создавать инкрементные резервные копии и копировать файлы между системами. При копировании данных вы можете исключить один или несколько файлов или каталогов на основе их имени или местоположения.
Прежде чем вы начнете
Вы должны иметь базовые знания о том, как работает rsync .
В приведенных ниже примерах мы будем использовать rsync с опцией,. Это говорит rsync о рекурсивной синхронизации каталогов, передаче специальных и блочных устройств и сохранении символических ссылок, времени модификации, группы, владельца и прав доступа.
При исключении файлов или каталогов вам необходимо использовать их относительные пути к исходному каталогу.
Существует два варианта указания файлов и каталогов, которые вы хотите исключить:
- Из командной строки , используя опцию.
- Из файла , используя опцию.
Исключить определенный файл
Чтобы исключить конкретный файл, передайте относительный путь к файлу опции.
В следующем примере файл не будет передан:
Исключение определенного каталога аналогично исключению файла, просто передайте относительный путь к каталогу для опции, как показано ниже:
Если вы хотите исключить содержимое каталога, но не сам каталог, используйте вместо :
Чтобы исключить несколько файлов или каталогов, просто укажите несколько параметров:
Если вы предпочитаете использовать один параметр, вы можете перечислить файлы и каталоги, которые вы хотите исключить, в фигурных скобках, разделенных запятой, как показано ниже:
Если число файлов и / или каталогов, которые вы хотите исключить, велико, вместо использования нескольких опций вы можете указать файлы и каталоги, которые вы хотите исключить, в файле и передать файл опции.
Команда ниже делает то же самое, что и выше:
исключить-file.txt
С rsync вы также можете исключить файлы и каталоги на основе шаблона, соответствующего имени файла или каталога.
Например, чтобы исключить все файлы, которые вы запускаете:
Немного сложнее исключить все другие файлы и каталоги, кроме тех, которые соответствуют определенному шаблону. Допустим, вы хотите исключить все другие файлы и каталоги, кроме файлов, заканчивающихся на .
Одним из вариантов является использование следующей команды:
При использовании нескольких параметров включения / исключения применяется первое правило соответствия.
- — Сначала мы включаем все файлы.
- — Затем мы включаем все каталоги в каталоге. Без этого rsync будет копировать только файлы в каталоге верхнего уровня.
- — Удаляет пустые каталоги.
Другой вариант — перенаправить вывод команды в rsync:
- — удалит из пути к файлу.
- — означает включать только файлы из стандартного ввода (файлы, переданные из команды find).
Из этого руководства вы узнали, как исключать файлы и каталоги при передаче данных с помощью Rsync. Еще много информации о Rsync можно найти на странице руководства пользователя Rsync .
Установка SyncThing
Установка в Linux осуществляется скачиванием программного обеспечения:
wget https://github.com/syncthing/syncthing/releases/download/v1.1.1/syncthing-linux-amd64-v1.1.1.tar.gz tar xzf syncthing-linux-amd64-v1.1.1.tar.gz cd syncthing-linux-amd64-v1.1.1/ sudo cp syncthing /usr/local/sbin
Будем считать, что мы планируем синхронизировать сессии PHP, которые хранятся в каталоге /var/www/tmp. Сам каталог /var/www принадлежит пользователю www-data (Ubuntu, Debian) или nginx (CentOS).
Создадим файл для запуска SyncThing через systemd:
sudo tee /etc/systemd/system/syncthing.service >/dev/null Description=Syncthing - Open Source Continuous File Synchronization Documentation=man:syncthing(1) After=multi-user.target network.target User=www-data ExecStart=/usr/bin/env HOME=/var/www /usr/local/sbin/syncthing -home /var/www/syncthing -gui-address 0.0.0.0:8384 Restart=on-failure SuccessExitStatus=3 4 RestartForceExitStatus=3 4 # Hardening ProtectSystem=full PrivateTmp=true SystemCallArchitectures=native NoNewPrivileges=true WantedBy=multi-user.target Ctrl^D
Для CentOS установите атрибут User= в значение nginx. Теперь включим созданную службу и запустим ее:
# убедимся, что права правильные # Ubuntu, Debian sudo chown -R www-data:www-data /var/www # CentOS sudo chown -R nginx:nginx /var/www sudo systemctl enable syncthing.service sudo systemctl start syncthing.service
Теперь вы можете зайти с помощью браузера на ваш сервер http://server.com:8384/, где сможете выполнить дальнейшую настройку SyncThing.
Тонкая настройка расширенных функций
На мой взгляд, расширенные функции (нажмите кнопку «Дополнительно» в раскрывающемся списке) действительно дают этому небольшому приложению дополнительные возможности, когда дело доходит до автоматической настройки заданий синхронизации и резервного копирования. Вы можете игнорировать уже обновленные файлы, игнорировать черный список, перемещать содержимое вместо его синхронизации и т. Д.
Небольшое примечание: если у вас много файлов для синхронизации, выйдите из программ, интенсивно использующих процессор, таких как Firefox и других, чтобы ускорить синхронизацию Synkron. Synkron может легко стать вашим приложением для синхронизации файлов по умолчанию. Если да, расскажите нам, что вам в нем нравится. Даже если это не так, дайте нам знать.
(через CybernetNews)
Настройка синхронизации с удаленным сервером при помощи rsync
Чаще всего копирование/синхронизация директорий с удаленным сервером используется для резервного копирования или синхронизации конфигурации сервера. При таком методе можно выполнять автоматическую синхронизацию данных с рабочего сервера на резервный, и в случае проблем на рабочем севере быстро все перевести на резервный. Это довольно удобный и простой в настройке вариант.
Сегодня версия rsync использует протокол SSH для передачи файлов по-умолчанию. Однако вы можете использовать и демон rsyncd. Для этого клиент rsync должен быть установлен на удаленном компьютере, и его демон добавлен в автозагрузку:
Для синхронизации через демона rsync адрес удаленного сервера указывается так :
Чтобы скопировать файл на удаленный сервер через протокол SSH, используйте команду:
После запуска команды, удаленный сервер запросит пароль пользователя (если включена авторизация по паролю). Для автоматической авторизации нужно настроить доступ по SSH ключу.
Копирование с локального хоста на удаленный хост
Скопируем директорию с локального сервера на удаленный:
То есть, все тоже самое, что и с локальными директориями, только мы указываем адрес удаленного сервера вместо адреса нашей директории.
Копирование с удаленного хоста на локальный хост
Так же вы можете синхронизировать файлы и с удаленного сервера на локальный, команда для этого немного изменится:
Для принудительного использования SSH протокола, а также если вы изменили порт для SSH или для авторизации требуется указать явно где расположен сертификат SSL, команды будут выглядеть следующим образом.
Принудительное использование протокола SSH
Подключение по стандартному порту:
Если удаленный SSH сервер имеет отличный от стандартного порт:
Если надо явно указать порт и ключ:
Синхронизация с использованием опций исключений
Также очень удобный опции —include и —exclude, с помощью этих опций, можно делать исключения по копированию директорий или файлов:
В данном случае мы исключили директорию “administrator” при копировании на удаленный сервер.
Добавлением опции —include мы смогли задать фильтр по файлам, скопировали только файлы с расширением «*.php«.
Клонирование файловой системы
rsync предоставляет способ создания копии всех данных в файловой системы с сохранением максимально возможного количества информации, включая метаданные файловой системы. Это процедура клонирования на уровне файловой системы, где файловые системы источника и назначения не обязаны совпадать. Она может использоваться для резервного копирования, смены файловой системы или восстановления данных.
Режим архива rsync неплохо подходит для этой цели, но он не создаёт резервную копию специальных метаданных файловой системы, таких как списки контроля доступа, расширенные атрибуты или свойства разреженных файлов. Для успешного копирования на уровне файловой системы, некоторые дополнительные опции должны быть включены:
rsync -qaHAXS ИСТОЧНИК НАЗНАЧЕНИЕ
Их значение (из справочной страницы):
--hard-links, -H сохранять жёсткие ссылки --acls, -A сохранять списки контроля доступа (вызывает --perms) --xattrs, -X сохранять расширенные атрибуты --sparse, -S сжимать последовательности нулей в разреженные блоки
Кроме того, используйте , если другие файловые системы, которые желаете исключить из копии, примонтированы в дерево.
Полученная копия может быть легко прочитана заново и проверена (например после попытки восстановления файлов) на уровне файловой системы с помощью рекурсивной опции :
diff -r ИСТОЧНИК НАЗНАЧЕНИЕ
Возможно осуществить успешный переход на другую файловую систему, используя rsync как описано в этой статье и обновив fstab и загрузчик, как описано в Перенос установки на новое оборудование (англ.). Это в сущности позволяет поменять любую корневую файловую систему на любую другую.
Расширенные функции
Черный список: Вы можете придать этому приложению немного интеллекта, создав черный список. Черный список помогает игнорировать файлы, которые вы не хотите синхронизировать. Подстановочные знаки также можно использовать для синхронизации определенных файлов, которые вы хотите. Вам не нужно вводить его; просто перейдите к файлам и добавьте их. Широко используйте черный список для больших файлов, которые не нужно синхронизировать каждый раз.
Мультисинхронизация: Если вы хотите синхронизировать несколько распределенных файлов и папок из разных мест назначения в одном центральном месте, функция Multisync — это то, что вам нужно.
Планировщик: Вы можете автоматически настроить Synkron на запуск операций синхронизации с помощью расписаний. Планировщик работает для нескольких заданий синхронизации так же, как и для одного.
Восстановить: Если вы удалите или перезаписываете файл за один запуск, вы можете легко восстановить его с помощью функции восстановления. Вам просто нужно выбрать дату, когда вы выполнили синхронизацию, и исходный путь к файлу.
Полезные опции
Рассмотрим примеры использования некоторых настроек, которые могут показаться полезными.
Исключения
Мы можем настроить исключение файлов по маске, которые не нужно передавать в другую директорию. Это делается с помощью опций exclude или excludeFrom в разделе sync, например:
sync {
…
exclude = { ‘*.bak’ , ‘*.tmp’ },
}
sync {
…
excludeFrom=»/etc/lsyncd.exclude»,
}
* в первом блоке мы исключим все файлы, которые заканчиваются на .bak или .tmp. Для второго мы будем использовать файл /etc/lsyncd.exclude, в котором перечислим исключения.
Для второго блока создаем файл с исключениями:
vi /etc/lsyncd.exclude
*.tmp
*.bak
testfile.txt
test/
* в данном примере мы игнорируем файлы, заканчиваются на .bak или .tmp,а также файл testfile.txt и содержимое каталога test.
Комментарии
Стоит обратить внимание, что комментарии в конфигурационном файле ставятся с помощью двух дефисов, например:
sync {
— протокол синхронизации
default.rsyncssh,
— источник данных
source = «/tmp/source»,
— сервер назначения
host = «dmosk@192.168.1.15»,
— каталог назначения
targetdir = «/tmp/target»,
}
Порт SSH
Отдельный порт для подключения по ssh мы можем указать в блоке sync, разделе ssh:
sync {
default.rsyncssh,
source = «/tmp/source»,
…
ssh = {
port = 2222
}
}
* в этом примере мы указываем использовать порт 2222 для подключения по SSH.
Ограничения
При необходимости, мы можем установить некоторые значения для ограничения или обхода ограничений. Настройки задаются в блоке settings:
settings {
…
statusInterval = 5
maxDelays = 900,
maxProcesses = 6,
}
* где:
- statusInterval — как говорилось выше, задает интервал обновления статус-файла в секундах. Чем ниже значение, тем быстрее файлы попадают в очередь для синхронизации.
- maxDelays — задает количество файлов в очереди, при достижении которого задачи синхронизации будут запускаться ниже таймера задержки.
- maxProcesses — максимальное количество процессов, которое сможет запустить lsync.
Установка прав
Мы можем задать права после синхронизации. Это настраивается в блоке sync, разделе rsync:
sync {
…
rsync = {
…
owner=true,
chown=»nginx:nginx»
chmod=»775″
perms=true
}
}
* где:
- owner — говорит, сохранять ли владельца файла.
- chown — задает конкретного владельца и группу.
- chmod — задает права на синхронизированные файлы.
- perms — говорит, сохранять ли права.