rsync+inotify實現數據同步——單向傳輸

實驗環境:<從A主機推送數據到B主機[B主機可以有多個]>

A主機:10.1.43.102

B主機:10.1.43.103


配置流程:

—rsyncserver—- <B主機上配置>

1.vim /etc/rsyncd.conf(用戶,目錄,模塊,虛擬用戶及密碼文件)

vim /etc/rsyncd.conf
uid = root
gid = root
port = 873 #post rsync使用的端口號  也是默認端口號 www.jbxue.com
hosts allow = 10.1.43.103 #allow hosts ip 應許的ip訪問,也可以設置為ip段
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 =/var/www/html  #客服端已rsync服務端同步的文件路徑
comment = from 10.1.43.103  #解釋
read only = no
write only = no
list = no
    
auth users =rsync  #配置登陸名稱
secrets file = /etc/rsync.password  #配置用戶名密碼文件

2.創建共享目錄:/test/rsync

mkdri -pv /test/rsync

3、創建密碼文件,文件路徑和文件名參照配置文件里"secrets file"選項的值,然后添加密碼內容

vim /etc/rsync.password
rsync:123456

4、密碼文件的權限600

chmod 600 /etc/rsync.password

5、運行rsync,并且開機啟動

rsync –daemon
echo "rsync –daemon" >> /etc/rc.local

6、如果出錯,查看日志  

tail /var/log/rsyncd.log

——rsyncclient——<A主機上配置>

1、密碼文件

vim /etc/rsync.password
123456   #注意:此處只需要寫服務端虛擬帳號的密碼即可

2、密碼文件的權限600

chmod 600 /etc/rsync.password

3.創建共享目錄:/test/rsync

mkdri -pv /test/rsync

4、安裝inotify-tools軟件包

yum -y install inotify-tools

5、編寫同步腳本

vim /root/bin/rsync.sh
#!/bin/bash
src=/test/rsync   
des=backup       
host="10.1.43.102"  
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y%H:%M' --format '%T%w%f' -e modify,delete,create,attrib \  #此行尚未完結
$src | while read files; do
  for hostip in $host; do
    rsync -avz --delete --progress --password-file=/etc/rsync.password $src rsync@$hostip::$des
  done
  echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done

6、后臺自動運行,并且開機自動啟動

nohup /bin/bash /root/bin/rsync.sh &
echo "nohup /bin/bash /root/bin/rsync.sh &" >> /etc/rc.loacl

如果再配置過程中出現如下問題

問題一:

@ERROR: chroot failed

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服務器端的目錄不存在或無權限,創建目錄并修正權限可解決問題

問題二:

@ERROR: auth failed on module backup

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服務器端該模塊(backup)需要驗證用戶名密碼,但客戶端沒有提供正確的用戶名密碼,認證失敗

提供正確的用戶名密碼解決此問題

問題三:

@ERROR: Unknown module ‘backup'

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服務器不存在指定模塊。提供正確的模塊名或在服務器端修改成你要的模塊以解決問題

問題四:

password file must not beother-accessible

continuing without password file

Password:

原因:

這是因為rsyncd.pwdrsyncd.secrets的權限不對,應該設置為600。如:chmod600 rsyncd.pwd

問題五:

rsync: failed to connect to218.107.243.2: No route to host (113)

rsync error: error in socket IO(code 10) at clientserver.c(104) [receiver=2.6.9]

原因:

對方沒開機、防火墻阻擋、通過的網絡上有防火墻阻擋,都有可能。關閉防火墻,其實就是把tcp udp的873端口打開

問題六:

rsync error: error startingclient-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]

原因:

/etc/rsyncd.conf配置文件內容有錯誤。請正確核對配置文件

問題七:

rsync: chown "" failed:Invalid argument (22)

原因:

權限無法復制。去掉同步權限的參數即可。(這種情況多見于Linux向Windows的時候)

 

問題八:

@ERROR: daemon security issue –contact admin

rsync error: error starting client-server protocol (code 5) at main.c(1530)[sender=3.0.6]

原因:

同步的目錄里面有軟連接文件,需要服務器端的/etc/rsyncd.conf打開use chroot = yes。掠過軟連接文件

原創文章,作者:megedugao,如若轉載,請注明出處:http://www.www58058.com/54883

(0)
megedugaomegedugao
上一篇 2016-10-27
下一篇 2016-10-27

相關推薦

  • Centos 編譯內核操作實踐

    §·編譯內核: ※·程序包的編譯安裝: ./configure   make   make install 前提:開發環境(開發工具,開發庫),頭文件(/usr/include)  開源: 源代碼開發—->可執行格式,(不同Linux的發行版以自己的理解,發行的軟件不同) 發行版:以“通用”…

    Linux干貨 2016-09-13
  • week3:cut,sort,grep等shell工具的應用及用戶,組管理類命令

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意,同一個用戶登錄多次只顯示一次即可    who | cut -d' ' -f1 | sort –u 2、取出最后登錄到當前系統的用戶相關信息    who | cut -d' ' -f1 | tail -1 | id 3、取出當…

    Linux干貨 2016-11-20
  • iptables之nat

    NAT網絡地址轉換SNAT:修改IP報文中的源IP地址 本地向互聯網請求讓本地網絡中的主機可使用統一地址與外部通信,從而實現地址偽裝請求:修改源IP,如果修改則由光梨園定義響應:修改目標IP,由nat自動根據會話表中追蹤機制實現相應修改DNAT:修改目標地址轉換 外網服務器向其他客戶端請求請求:由外網主機發起,修改其目標地址,由管理員定義相應:修改源地址,但…

    2017-11-12
  • samba服務實現:linux和windows之間共享

    1,首先在linux(centos6,7)安裝好samba程序:     yum -y install samba   samba-common        主配置文件:/etc/samba/smb.conf   ~]# groupadd share_gro…

    2017-03-05
  • 馬哥教育21期網絡班—第三周課程+練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 who |cut -d" " -f1 |sort -u 2、取出最后登錄到當前系統的用戶的相關信息。 id `who | tail -n …

    Linux干貨 2016-07-12
  • CentOS系統啟動流程——深入了解linux

    CentOS系統啟動流程 ·Linux系統的組成部分:內核+根文件系統      內核:進程管理、內存管理、網絡協議棧、文件系統、驅動程序、安全功能              IPC:Inter Pr…

    Linux干貨 2016-09-11
欧美性久久久久