나는 깔끔한 중앙 집중식 관리를 제공하고 시스템 리소스를 절약하기 때문에 모든 rync 요구 사항에 rsync 데몬을 사용하는 것을 선호합니다. 따라서 my에는 /etc/rsyncd.conf
여러 모듈 항목이 포함되어 있습니다.
실제 rsync 명령에 대한 래퍼 스크립트는 모두 while
연결이 끊어진 경우 해당 rsync-데몬에 즉시/반복적으로 다시 연결하는 루프입니다.
문제:max connections = 1
각 모듈의 변수 항목을 읽는 중입니다 .전 세계적으로오히려개별적으로각 모듈마다. 이로 인해 발생합니다 @ERROR: max connections (1) reached -- try again later
(rsync-daemon이 먼저 연결되면 단일 사용이 잘못됨)글로벌 max connection = 1
, 다른 모든 연결이 실패하게 됩니다.. 짜증납니다).
가 없으면 max connections = 1
루프 while
는 스레드를 무제한으로 회전시키고 불필요한 리소스를 소비할 수 있으므로 모듈당 연결이 제한됩니다. 한편 문서마다 file.lock이 max connections = 1
함께 제공됩니다 per module
.
이것은 나의 /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
?