centos6 rsync+inotify 数据同步
一 前戲
#檢測rsync是否已安裝
rpm -qa rsync
#如未按裝,執(zhí)行yum安裝
yum install -y rsync
#新建用戶和目錄并授權
useradd -M -s /sbin/nologin? rsync
mkdir /bakcup
chown -R rsync.rsync /bakcup/
?
?
二 服務端配置
#打開配置文件,填入以下內(nèi)容
vi /etc/rsyncd.conf
===================================
#rsyncd.conf_______________start
#指定用戶
uid = rsync
gid = rsync
#相當于黑洞 出錯定位
use chroot = no
#有多少個客戶端同時傳文件
max connections = 200
#超時時間
timeout = 300
#進程號文件
pid file = /var/run/rsyncd.pid
#鎖文件
lock file = /var/run/rsync.lock
#日志文件
log file = /var/log/rsyncd.log
#模塊開始 這個模塊對應的是推送目錄 模塊名稱隨便起
[backup]
#同步數(shù)據(jù)目錄
path = /backup
#表示出現(xiàn)錯誤忽略錯誤
ignore errors
#表示網(wǎng)絡權限可寫(還需要本地文件權限配合)
read only = false
#這里設置IP或讓不讓同步
list = false
#指定允許的網(wǎng)段
hosts allow = 192.168.1.0/24
#拒絕鏈接的地址,一下表示沒有拒絕的鏈接
hosts deny = 0.0.0.0/32
#虛擬用戶
auth users = rsync_backup
#虛擬用戶的密碼文件
secrets file = /etc/rsync.password
#rsync_config_______________end
=================================================
#設置訪問密碼文件
echo "rsync_backup:younger" >/etc/rsync.password
#為密碼文件設置安全權限
chmod 600 /etc/rsync.password
#啟動守護進程模式
rsync --daemon
#添加開機自啟動
echo 'rsync --daemon' >> /etc/rc.local
?
?
三 客戶端配置
#檢測rsync是否已安裝
rpm -qa rsync
#如未按裝,執(zhí)行yum安裝
yum install -y rsync
echo "younger" >/etc/rsync.password
#為密碼文件設置安全權限
chmod 600 /etc/rsync.password
#添加EPRL源
wget -O /etc/yum.repos.d/epel.repo?http://mirrors.aliyun.com/repo/epel-6.repo
#安裝
yum install inotify-tools -y
#編輯時時監(jiān)控腳本
vi inotify.sh
===============================================
#!/bin/bash
host=192.168.1.160? #rsync服務端的ip地址
src=/data???????????? #本地監(jiān)控的目錄
dst=backup??????????? #rsync服務的模塊名
user=rsync_backup???? #rsync服務的虛擬用戶
rsync_passfile=/etc/rsync.password?? #本地調(diào)用rsync服務的密碼文件
inotify_home=/usr/?????????? #inotify的安裝目錄
if [ ! -e "$src" ] \
|| [ ! -e "${rsync_passfile}" ] \
|| [ ! -e "${inotify_home}/bin/inotifywait" ] \
|| [ ! -e "/usr/bin/rsync" ];
then
echo "Check File and Directory"
exit 9
fi
${inotify_home}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib $src \
| while read file
do
#? rsync -avzP --delete --timeout=100 --password-file=${rsync_passfile} $src?$user@$host::$dst?>/dev/null 2>&1
cd $src && rsync -aruz -R --delete ./? --timeout=100?$user@$host::$dst?--password-file=${rsync_passfile} >/dev/null 2>&1
done
exit 0
===================================================================================
?
四 測試
#后臺執(zhí)行時時監(jiān)控腳本
sh inotify.sh &
#在本地/data目錄新建文件
mkdir {1..99}
#在服務端/backup下查看同步狀態(tài)
備注:如若不成功可能出現(xiàn)問題的地方
1 rsyncd.conf? 沒有d
2 rsync.password 權限非600
3 rsync.password 服務端保存用戶名密碼???
4 rsync.password 客戶端只保存密碼
5 目錄的路徑名稱和允許的IP權限
6 防火墻
come on 努力吧
?
?
#網(wǎng)友優(yōu)化每秒200個文件并發(fā),數(shù)據(jù)同步幾乎無延遲(待測)
[root@nfs-server scripts]# echo "50000000" >/proc/sys/fs/inotify/max_user_watches?
[root@nfs-server scripts]# echo "50000000" >/proc/sys/fs/inotify/max_queued_events
本文轉(zhuǎn)自younger00851CTO博客,原文鏈接:?http://blog.51cto.com/younger008/1905439,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結
以上是生活随笔為你收集整理的centos6 rsync+inotify 数据同步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: my02_Atlas mysql5.7安
- 下一篇: 支付测试用例