Rsync установка и настройка под Zyxel Keenetic Giga
Статья посвящена установке и настройке под кинетик Rsync сервера, к которому будет подсоединяться клиент с другой машины и синхронизировать свою папку с папкой на keenetic.
Подразумевается, что у вас уже есть Keenetic с рабочим линуксом и доступом к нему по ssh.
Установка сервера RSync на Keenetic giga и начальная настройка
Сперва нужно поставить требуемый пакет из репозитария
Из описания в системе opkg я так понял, что конфиги и инитскрипты ставятся вот этим пакетом - rsynd, так что ставим и его
После чего добавляем rsync в автозапуск
Добавляем в фаерволл правило для открытия порта 873 для доступа к Rsync из вне:
iptables -A INPUT -p tcp --dport 873 -j ACCEPT
В итоге получится что-то типа
#!/bin/sh
iptables -A INPUT -p tcp --dport 873 -j ACCEPT
Настраиваем конфиг сервера RSync на keenetic
В настройке мне помогла эта статья.
Для этого нам нужно поправить следующий конфиг /media/DISK_A1/system/etc/rsyncd.conf
Почти все строчки я постарался прокомментировать (английский конечно хромает, но мне так больше нравится).
# /etc/rsyncd.conf
# Minimal configuration for rsync daemon
# Next line required for init script
pid file = /media/DISK_A1/system/var/run/rsyncd.pid
# Log file
log file = /media/DISK_A1/system/var/log/rsyncd.log
# lock file
lock file = /media/DISK_A1/system/var/lock/rsync.lock
# Write to log about all downloading files
transfer logging = true
#Disallow writing to out folder
read only = yes
#Sync photos from IP camera
[dachacamera]
#path to files from IP camera
path = /media/DISK_A1/dachacamera
#comment =)
comment = photos from dacha IP camera
#working in cage
use chroot = yes
#only reading files
read only = yes
#allow files listing
list = yes
#user and group from whitch we will work on rsync server after connecting
uid = root
gid = root
#white list of hosts
hosts allow = 10.8.0.1
ignore errors = no
ignore nonreadable = yes
timeout = 6000
dont compress = *.jpg *.avi *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
#user for login to rsync (make init auth)
auth users = LOGIN
#path to password file for init auth
secrets file = /media/DISK_A1/system/etc/config/rsyncd.scrt
Далее создаём файл с паролем для авторизации на сервере Rsync на кинетике
ограничиваем на него права
Далее заносим в него логин и пароль
LOGIN:PAROL
Создаём папку, которая будет служить эталоном для подключаемых клиентов и откуда они будут забирать недостающие файлы. В моём конкретном случае это папка, куда будут складываться файлы с IP камеры и откуда мы будем их забирать
Настройка Rsync клиента на Gentoo box
Сперва устанавливаем сам Rsync
Теперь на нашем сервере, который будет забирать файлы с кинетика нужно выполнить следующее:
Создать файл с паролем для доступа к серверу Rsync кинетика
Куда добавляем наш пароль PAROL =)
Ставим ограниченные права
Далее создаём скрипт для выполнения операции "забор фоток" с кинетика на даче в моём случае или же просто бэкапа данных с сервера на клиент
куда помещаем код конекта к Rsync серверу кинетика и забору файлов
#!/bin/bash
pathtoimages=/your/path/to/files/dachaipcamera
rsync -urt --password-file=/root/.rsync/keenetic.scrt LOGIN@10.8.0.6::dachacamera $pathtoimages
chown -R apache:apache $pathtoimages
Последняя строчка chown -R apache:apache $pathtoimages мне нужна, так как копирование группы и прав доступа файлов, как они были на сервере rsync на keenetic мне не подходит, и есть необходимость задать специфические права доступа. То есть в моём случае клиент кидает фотки в папку вебсервера и меняет владельца с root на того, под которым запускается веб сервер.
Даём права на исполнение
и добавляем правило в крон
#-------------------Dacha-IP-CAMERA-FROM-KEENETIC--------------------------------------
*/5 * * * * /bin/rsync/keenetic.sh > /dev/null 2>&1
Перезапускаем крон
Ссылки
- Статья, которая легла в основу данного хелпа