Синхронизируем базу 1С костыльно с помощью rsync
Ситуация такая — в основном офисе настроен сервер терминалов FreeNX, 1С7 работает из-под Etersoftовского Wine. В филиале есть самописный софт, которому нужен доступ к одному из .DBF файлов 1С7, который храниться на сервере терминалов. Основной офис и филиал соединены через OpenVPN, поэтому целиком передавать файл целиком каждый раз не вариант. Используем rsync в режиме демона на сервере филиала для передачи лишь изменений в файле.
Создаем /etc/rsyncd.conf на сервере филиала:
Суть конфига — с разрешенного хоста (hosts allow) принимаются соединения только на запись (write only). Файл попадает в директорию /srv/smb/reestr, которая только для записи (прочитать обратно файлы нельзя), листинг файлов запрещен (list), файлы получают права на чтение для всех (incoming chmod) (это нужно для работы samba).
Запускаем rsync в режиме демона:
Терминальный сервер отслеживает изменения в DBF файле 1Ски и при наличии изменений скидывает разницу с помощью rsync на сервер филиала. Для этого используется простой скрипт, отслеживающий время модификации DBF файла:
Вот так.
1С гори в аду!
Создаем /etc/rsyncd.conf на сервере филиала:
[reestr]
path = /srv/smb/reestr
read only = no
use chroot = yes
hosts allow = терминальный сервер
list = false
write only = yes
incoming chmod = u+r,g+r,o+r
Суть конфига — с разрешенного хоста (hosts allow) принимаются соединения только на запись (write only). Файл попадает в директорию /srv/smb/reestr, которая только для записи (прочитать обратно файлы нельзя), листинг файлов запрещен (list), файлы получают права на чтение для всех (incoming chmod) (это нужно для работы samba).
Запускаем rsync в режиме демона:
rsync --daemon
Терминальный сервер отслеживает изменения в DBF файле 1Ски и при наличии изменений скидывает разницу с помощью rsync на сервер филиала. Для этого используется простой скрипт, отслеживающий время модификации DBF файла:
#!/bin/bash
FILE="/srv/bases/1С7/SC12.DBF"
while true
do
OLD=`stat $FILE | grep Modify`
if [ "$NEW" != "$OLD" ]; then
rsync -avz $FILE rsync://сервер-филиала/reestr/sc12.dbf
fi
NEW=$OLD
sleep 30
done
Вот так.
1С гори в аду!
Комментарии (4)
RSS свернуть / развернутьАвтоматический удовлетворитель для 1C…
Markony
FREExLOADER
ahmetzyanov_d
yababay
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.