Ошибка максимального количества подключений Rsync-Daemon

Ошибка максимального количества подключений Rsync-Daemon

Я предпочитаю использовать rsync daemon для всех моих нужд rync, потому что он обеспечивает чистое централизованное управление и экономит системные ресурсы. Соответственно, мой /etc/rsyncd.confсодержит несколько записей модулей.

Мои скрипты-оболочки для моих реальных команд rsync представляют собой whileциклы, которые будут мгновенно / многократно повторно подключаться к соответствующим rsync-daemons в случае разрыва соединения.

Проблема:
max connections = 1Считывается переменная запись для каждого модуля .глобальноскорее, чеминдивидуальнона каждый модуль. Тем самым вызывая @ERROR: max connections (1) reached -- try again laterвозникновение (какой бы rsync-демон ни подключался первым, он получает единственный доступный неправильноГлобальный max connection = 1, что приводит к сбою всех остальных соединений.. раздражает ).

Без max connections = 1, whileцикл имеет возможность раскручивать неограниченное количество потоков и потреблять ненужные ресурсы, отсюда и ограничение на количество соединений на модуль. Между тем , max connections = 1имеет сопутствующий per moduleфайл file.lock согласно документации.

Это мое /etc/rsyncd.conf:

[home]
path = /home/username
list = yes
use chroot = false
strict modes = false
uid = root
gid = root
read only = yes
# Data source information
max connections = 1
lock file = /var/run/rsyncd-home.lock

[prod-bkup]
path = /media/username/external/Server-Backups/Prod/today
list = yes
use chroot = false
strict modes = false
uid = root
gid = root
# Don't allow to modify the source files
read only = yes
max connections = 1
lock file = /var/run/rsyncd-prod-bkup.lock

[test-bkup]
path = /media/username/external/Server-Backups/Test/today
list = yes
use chroot = false
strict modes = false
uid = root
gid = root
# Don't allow to modify the source files
read only = yes
max connections = 1
lock file = /var/run/rsyncd-test-bkup.lock

[VminRoot2]
path = /root/VDI-Files
list = yes
use chroot = false
strict modes = false
uid = root
gid = root
# Don't allow to modify the source files
read only = yes
max connections = 1
lock file = /var/run/rsyncd-VminRoot2.lock

Вот пример одного из моих скриптов-оболочек rsync-daemon:

#!/bin/sh
#
#
while [ 1 ]
do

   cputool --load-limit 7.5 -- nice -n -15 rsync -avxP --no-i-r --rsync-path="rsync" --log-file=/var/log/rsync-home.log --exclude 'snap'  --exclude 'lost+found' --exclude=".*" --exclude=".*/" 127.0.0.1::home /media/username/external/home-files-only && sync && echo 3 > /proc/sys/vm/drop_caches
   
    if [ "$?" = "0" ] ; then
        echo "rsync completed normally"
        exit
    else
        echo "Rsync failure. Backing off and retrying..."
        sleep 10
    fi
done

#end of shell script

Вопрос
Как избавиться от ERROR: max connections (1) reached -- try again laterошибки?

Связанный контент