rsync服務守護進程 服務器端配置過程:web
1. 檢查rsync是否安裝:服務器
rpm -qa rsyncide
2.添加rsync服務的用戶,管理本地目錄測試
useradd-s /sbin/nologin -M rsyncui
3.生成rsyncd.conf 配置文件(默認沒有須要手動建立)spa
touch /etc/rsyncd.conf code
4. 寫入配置到 /etc/rsyncd.conf 文件中orm
#rsync_configserver
#created by HQ at 2017blog
##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
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32 ##這兩個同時寫,那就會形成其餘IP段也能經過rsync傳文件,解決辦法,保留一個
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir by oldboy"
path = /backup
#created by oldboy 15:00 2016-11-15
##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]
path = /backup
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32 ##這兩個同時寫,那就會形成其餘IP段也能經過rsync傳文件,解決辦法,保留一個
auth users = rsync_backup
secrets file = /etc/rsync.password
5.寫入密碼到 密碼配置文件/etc/rsync.password
echo "rsync_backup:123456" >/etc/rsync.password
6. 給密碼文件添加權限避免其餘用戶看到
chmod 600 /etc/rsync.password
7.建立共享目錄 /backup並受權
mkdir /bakcup -p
chown -R rsync.rsync /backup
8. 啓動服務並檢查
rsync --daemon 服務器配置完成
9.添加到開機自啓動
echo "/usr/bin/rsync --daemon" >>/etc/rc.local
檢查是否成功啓動:lsof -i:873
[root@backup ~]# lsof -i:873 (進程啓動成功,配置完成)
COMMANDPID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync2002 root 4u IPv412746 0t0 TCP *:rsync (LISTEN)
rsync2002 root 5u IPv612747 0t0 TCP *:rsync (LISTEN)
---------------------------
客戶端配置:
兩步:
1. echo '123456' >/etc/rsync.password
2. chmod 600 /etc/rsync.password
測試:
客戶端:
[root@nfs01 backup]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup/
Password:
sending incremental file list
./
1.txt
10.txt
2.txt
3.txt
4.txt
5.txt
6.txt
7.txt
8.txt
9.txt
所有推送到 遠程服務成功
配置無交互的密碼文件驗證方式:
rsrsync -avz /backup/sync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
密碼文件存放: --password-file=/etc/rsync.password
服務器(10.0.0.31)建立文件:
to touch chenleilei{1..100}.txt
rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
看到文件都被推送過來了,表示成功完成實驗
百萬級小文件的實時同步方案:
http://www.ttlsa.com/web/let-infotify-rsync-fast/
注意:修改了服務配置必須重啓服務,不然沒法生效
重啓進程的兩個方法:
rm -f /var/run/rsyncd.pid
pkill rsync
進程結束了 最好確認一下:
lsof -i :873
一樣進程開啓了也須要確認一下
lsof -i :873
小問題:
vi /etc/rsyncd.conf 配置文件中:
#hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
#hosts allow = 192.168.1.0/24
所有註釋都沒法傳輸
hosts allow = 192.168.1.0/24 開放這一項 沒法傳輸
hosts deny = 0.0.0.0/32 #僅開放這一項 能夠傳輸
hosts allow = 172.16.1.0/24 #僅開放這一項 沒法傳輸
所有註釋 能夠傳輸???
rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password 能夠在沒有任何權限的狀況下 推送文件到 服務器
hosts deny = 0.0.0.0/32 能夠傳輸
hosts allow = 172.16.1.0/24 能夠傳輸
hosts allow = 192.168.1.0/24 單項開啓 沒法傳輸
hosts deny = 0.0.0.0/32 單項開啓: 能夠傳輸
hosts allow = 172.16.1.0/24 單項開啓:能夠傳輸
hosts deny = 0.0.0.0/32 開啓
hosts allow = 192.168.1.0/24 開啓 這兩項同時開啓,能夠傳輸
hosts allow = 172.16.1.0/24 開啓
hosts allow = 192.168.1.0/24 開啓 這兩項 沒法傳輸
註釋其餘全部添加外網網段
hosts alllow = 10.0.0.0/24 開啓 能夠傳輸
故障整理演示:
故障1:
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
答: 要上傳的目錄不存在嗎,由於我在另外一端刪除了 /backup 目錄 ,解決辦法 從新建立backup目錄 從新添加所屬主組 和數字權限600
[root@backup ~]# mkdir /backup -p
[root@backup ~]# chmod 600 /backup/
[root@backup ~]# chown rsync.rsync /backup/
推送數據:
rsync -avz /backup/ rsync_backup@172.16.1.41::backup/
拉回數據:
rsync -avz rsync_backup@172.16.1.41::backup/ /backup
遠程推送數據:
sync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
拉回遠程數據:
rsync -avz rsync_backup@172.16.1.41::backup /backup --password-file=/etc/rsync.password