1.yum 安裝rsync
備份伺服器端:
yum install -y rsync
vi /etc/xinetd.d/rsync
<a href="http://s2.51cto.com/wyfs02/M00/8C/27/wKioL1hjsUjRX-9YAABbRJmQ7aE848.png" target="_blank"></a>
yum install -y xinet*
/etc/init.d/xinetd start
<a href="http://s2.51cto.com/wyfs02/M00/8C/27/wKioL1hjsXqxdNZjAAAWFWNhYp0929.png" target="_blank"></a>
以上是安裝服務,很多情況隻用這個指令就可以了,不需要安裝這個服務
vim /etc/rsyncd.conf //該rsyncd.conf不存在,需要自己手動建
port=873
log file=/var/log/rsync.log #指定日志
pid file=/var/run/rsyncd.pid #指定pid
[test] #為子產品名,自定義
path=/root/rsync # 指定該子產品對應在哪個目錄下
use chroot=true #是否限定在該目錄下,預設為true,當有軟連接配接時,需要改為fasle
max connections=4 # 指定最大可以連接配接的用戶端數
read only=no //yes指定用戶端對該共享目錄隻有隻讀權限隻能下載下傳,no有讀寫和上傳權限,共享目錄必須有W寫權限才能上傳
list=true #是否可以列出子產品名
uid=victor #以哪個使用者的身份來傳輸
gid=victor #以哪個組的身份來傳輸
auth users=victor #指定驗證使用者名,可以不設定
secrets file=/etc/rsyncd.passwd #指定密碼檔案,如果設定驗證使用者,這一項必須設定
hosts allow=104.193.95.0/24
hosts allow = 104.193.95.63 (也可以寫一個IP,不用寫使用者名跟密碼,)
mkdir -p /root/rsync
chown victor:victor /root/rsync
/etc/init.d/xinetd restart
rsync --daemon
vi /etc/rsyncd.passwd
victor:SX3edc!23
chmod 600 /etc/rsyncd.passwd
主伺服器:
SX3edc!23
rsync -avP --password-file=/etc/rsyncd.passwd /etc/passwd [email protected]::test
<a href="http://s3.51cto.com/wyfs02/M00/8C/32/wKiom1hkxlqh467CAABSe-fXua4181.png" target="_blank"></a>
錯誤:
使用者密碼錯誤
檢查主伺服器密碼檔案和從伺服器密碼檔案。
主伺服器密碼檔案 /etc/rsyncd.secrets 格式為: username:password
從伺服器密碼檔案 password.rsync 格式為:password
2.inotify-tools安裝
inotify-tools 是為linux下inotify檔案監控工具提供的一套c的開發接口庫函數,同時還提供了一系列的指令行工具,這些工具可以用來監控檔案系統的事件。 inotify-tools是用c編寫的,除了要求核心支援inotify外,不依賴于其他。inotify-tools提供兩種工具,一是inotifywait,它是用來監控檔案或目錄的變化,二是inotifywatch,它是用來統計檔案系統通路的次數。如果列出的核心版本不低于 2.6.13,系統就支援 inotify。還可以檢查機器的 /usr/include/sys/inotify.h 檔案。如果它存在,表明核心支援 inotify。
下載下傳位址:
1.wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
<a href="http://s4.51cto.com/wyfs02/M00/8C/2F/wKioL1hkzTuj0NxSAAAcFWBdCGw932.png" target="_blank"></a>
[root@localhost ~]# ll /proc/sys/fs/inotify
-rw-r--r-- 1 root root 0 4月 29 08:53 max_queued_events 表示監控事件隊列 (長度)
-rw-r--r-- 1 root root 0 4月 29 08:53 max_user_instances 表示最多監控執行個體數
-rw-r--r-- 1 root root 0 4月 29 08:53 max_user_watches 表示每個執行個體最多監控檔案數
<a href="http://s3.51cto.com/wyfs02/M00/8C/2F/wKioL1hkze_yc3cPAAAu9EoL1sU192.png" target="_blank"></a>
inotify修改數值
vi /etc/sysctl.conf
<a href="http://s3.51cto.com/wyfs02/M01/8C/33/wKiom1hkzo3Ru4z0AAA-ewxqGKw298.png" target="_blank"></a>
在最後
sysctl -p生效
tar xzf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr/local/inotify-tools
<a href="http://s4.51cto.com/wyfs02/M02/8C/2F/wKioL1hk0GmxeObMAAAQVW_k2VU965.png" target="_blank"></a>
以下就是安裝完成了。
inotifywait 實時監控/home的所有事件(包括檔案的通路,寫入,修改,删除等)
inotifywatch統計檔案系統的事件
<a href="http://s4.51cto.com/wyfs02/M01/8C/3F/wKioL1hmUFTjvi7TAAAR2nfqlKw082.png" target="_blank"></a>
例:rsync+inotify腳本
host=103.242.109.12 #rsync伺服器IP
src=/victor/ #本地監控的目錄
dst1=test #rsync伺服器上子產品名
user1=victor #rsync伺服器上的虛拟使用者
<a href="http://s2.51cto.com/wyfs02/M02/8C/42/wKiom1hmUtPxPAYhAABRIN3Fckk318.png" target="_blank"></a>
#!/bin/bash
host=103.242.109.12
src=/victor/
dst1=test
user1=victor
/usr/local/inotify-tools/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src\
| while read files
do
/usr/bin/rsync -avPz --delete --password-file\=/etc/rsyncd.passwd $src $user1@$host::$dst1
echo "${files}was rsynced" >>/tmp/rsync.log 2>&1
done
\自動換行, \=轉義
/root/ifyrsync.sh &
将此腳本加入系統自啟動檔案:
echo /root/ifyrsync.sh &”>>/etc/rc.local
在inotify伺服器的/victor/下建立目錄,看rsync伺服器上的test下是否會同步
錯誤資訊:
1.inotify伺服器上:
syntax or usage error (code 1) at main.c(1238) [sender=3.0.6]
這個一般是伺服器端的目錄不存在或無權限。我遇到的問題就是inotify手寫的腳本有問題,後來複制以前的腳本就解決了。
2.rsync伺服器的日志錯誤:
<a href="http://s1.51cto.com/wyfs02/M02/8C/43/wKioL1hncWiBzcsXAADTjVzDbtQ437.png" target="_blank"></a>
本文轉自 15816815732 51CTO部落格,原文連結:http://blog.51cto.com/68686789/1887088