私は、すべての rync ニーズに rsync デーモンを使用することを好みます。これは、クリーンな集中管理を提供し、システム リソースを節約するためです。したがって、my には/etc/rsyncd.conf
複数のモジュール エントリが含まれています。
実際の rsync コマンドのラッパー スクリプトはすべてwhile
ループであり、接続が切断された場合に対応する rsync デーモンに即座に繰り返し再接続します。
問題:max connections = 1
各モジュールの変数エントリが読み取られてい ます世界的にそれよりも個別に各モジュールごとに。これにより、@ERROR: max connections (1) reached -- try again later
最初に接続したrsyncデーモンが誤って利用可能な単一の情報を取得することになります。グローバル max connection = 1
、他のすべての接続が失敗します。迷惑です。
がない場合max connections = 1
、while
ループは無制限のスレッドを起動して不要なリソースを消費する可能性があり、そのためモジュールあたりの接続数が制限されます。一方、 にはドキュメントごとに file.lockmax 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 デーモン ラッパー スクリプトの例です。
#!/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
?