1. 程式人生 > >rsync通過服務同步

rsync通過服務同步

rsync通過服務同步

技術分享圖片
技術分享圖片
對rsyncd.conf文件內容詳解:
port=873 //監聽端口默認為873,可以自定義端口
log file=/var/log/rsync.log //指定日誌路徑
pid file=/var/run/rsyncd.pid //指定pid路徑
address=192.168.202.130 //可以自定義綁定的ip
[test] //test為模塊名,可以自定義
path=/root/rsync // 指定該模塊對應路徑
use chroot=true //是否限定在該目錄下,默認為true,當有軟連接時,需要改為fasle,如果為true就限定為模塊默認目錄
max connections=4 //指定最大客戶端個數
read only=no //是否為只讀,如果是no的話,客服端推送給服務端的時候不成功,這時候要改成yes
list=true //是否可以列出模塊名
uid=root //以哪個用戶的身份來傳輸
gid=root //以哪個組的身份來傳輸
auth users=test //指定驗證用戶名,可以不設置,不設置默認不用密碼,設置的話安全性更高點
secrets file=/etc/rsyncd.passwd //指定密碼文件,如果設定驗證用戶,這一項必須設置,設定密碼權限為600
hosts allow=192.168.1.151 //這個是定義哪個機器可以連接本機
hosts allow=192.168.1.151 192.168.2.1 2.2.2.2 192.168.19.0/24 //多個ip使用空格隔開,也可以寫IP段

演示:
#vi /etc/rsyncd.conf //編輯配置文件
把上圖的rsyncd.conf樣例粘貼到配置文件中
#rsync --daemon //啟動服務
#ps aux |grep rsync 或者 #netstat -lntp 查看873端口有沒有啟動

#rsync -avP /tmp/1.txt 192.168.1.150::test/2.txt //test是rsyncd.conf配置文件中的[test]模塊名字
遇到問題:執行不成功,排查
首先#ping 192.168.1.150是否能通,能通,則
#telnet 192.168.1.150 873 //結果telnet873端口不通,可能是防火墻的問題,
#iptables -nvL 查看規則,果然是防火墻問題
#systemctl stop firewalld //把A和B機器的firewalld都關閉掉
#telnet 192.168.1.150 873 //再次telnet測試就通了,按Ctrl+],再quit就可以退出telnet了
#rsync -avP /tmp/1.txt 192.168.1.150::test/2.txt //執行rsync命令

對rsyncd.conf文件詳解:
技術分享圖片
需要特別註意rsyncd.conf配置文件中的use chroot true|false的含義
#rsync -avP --port 8730 192.168.1.150::test/2.txt /tmp/1.txt //--port 8730指定端口號,8730為在rsyncd.conf文件中自定義的端口號
技術分享圖片
#rsync --port 8730 192.168.1.150:: //這樣就可以查看到該服務器上的可用模塊
list=false //為了安全起見,list建議修改為false,這樣別人就列不出你的模塊名
設置用戶名密碼:
#vim /etc/rsyncd.passwd //首先在rsync服務端A機器上編輯#vim /etc/rsyncd.passwd文件,在裏面輸入賬號密碼 test:123456 ,格式為 用戶名:密碼
#chmod 600 /etc/rsyncd.passwd //修改它的權限為600
再在客戶端B機器上進行測試是否需要密碼:
#rsync -avP /tmp/1.txt --port 8730 [email protected]::test/2.txt //執行這個命令需要加用戶名,然後輸入在服務端A機器上設置的密碼,即可進行同步備份

需求:
需要使用rsync在每天淩晨備份數據庫,但是上面我們使用的是需要手動輸入密碼才能進行同步的,這樣,我們可以在客戶端B機器上也設定一個密碼文件
#vim /etc/rsync_pass.txt
在這個配置文件中只輸入一個服務端A機器上設置的密碼就可以,即輸入 123456
#chmod 600 /etc/rsync_pass.txt //修改它的權限為600
#rsync -avP /tmp/1.txt --port 8730 --passwd-file=etc/rsync_pass.txt [email protected]::test/2.txt //這樣就可以不輸入密碼進行同步備份了(註意,這兩行是一條完整的命令)

rsync通過服務同步