1.rsync特性
可以鏡像保存整個目錄樹和文件系統
可以增量同步數據,文件傳輸效率高,同步時間短
可以保持原有文件的權限、時間等屬性
可以通過ssh加密傳輸
支持匿名傳輸
2.利用rsync搭建遠程備份系統
a:192.168.21.132(rsync服務器)
b:192.168.21.131(客戶端)
配置服務端(a機器):
vim /etc/rsyncd.conf
參數意義:
uid:傳輸文件時守護進程應該具有的UID,默認是nobody,表示任意用戶。
gid:傳輸文件時守護進程應該具有的UID,默認是nobody,表示任意用戶組。
use chroot:此選項不可以備份目錄內的指向目錄外的鏈接文件,默認爲yes。
strict modes:指定是否檢查密碼文件的權限。
max connections:指定rsync服務端模塊的最大併發連接數。
pid file:rsync守護進程的pid文件路徑。
lock file:知道支持max connections的鎖文件。
log file:指定rsync日誌的輸出路徑。
[test]:模塊的名稱。
path:指定需要被封的文件或目錄。
igores error:忽略一些無關的IO錯誤。
hosts allow:設置可以連接rsync服務器的主機。
hosts deny:設置禁止連接rsync服務器的主機。
list:設置客戶端請求可以使用的模塊列表時,模塊是否被列出。
auth users:定義客戶端連接模塊的用戶名,與系統用戶無關。
secerts file:指定auth users的密碼文件路徑,格式爲:用戶名:密碼,權限爲600.
cat /etc/rsync.pwd
backup:test
啓動rsync:rsync --daemon
關閉rsync:pkill rsync
配置客戶端(b機器):
只需創建一個secrets file,內容爲服務端指定的密碼,不必寫用戶名。
cat /etc/rsync.pwd
test
同步目錄:
rsync -avzP [email protected]::test --delete /tmp --password-file=/etc/rsync.pwd
設置rsync開機啓動
- #!/bin/bash
- # rsyncd Start/Stop the rsyncd daemon.
- # chkconfig: 35 91 62
- # description: rsyncd server
- # processname: rsyncd
- # config: /etc/rsyncd.conf
- # pidfile: /var/run/rsyncd.pid
- # lockfile: /var/run/rsyncd.lock
- # logfile: /var/log/rsyncd.log
- . /etc/init.d/functions
- case "$1" in
- start)
- if [ -e /var/run/rsyncd.pid ];then
- echo "rsyncd is running"
- else
- /usr/bin/rsync --daemon
- if [ $? -eq 0 ]; then
- action "rsyncd start" /bin/true
- else
- action "rsyncd start" /bin/false
- fi
- fi
- ;;
- stop)
- if [ ! -e /var/run/rsyncd.pid ];then
- echo -n "rsyncd is not running. "
- action "rsyncd stop" /bin/false
- else
- killproc rsync
- if [ $? -eq 0 ]; then
- action "rsyncd stop" /bin/true
- else
- action "rsyncd stop" /bin/false
- fi
- fi
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- *)
- echo $"Usage: rsyncd {start|stop|restart}"
- ;;
- esac
添加服務:chkconfig --add rsyncd
3.rsync+inotify
inotify需在rsync客戶端安裝,監控客戶端指定目錄的變化,然後推送到遠程主機,可以實現遠程同步更新。
- #!/bin/bash
- src=/tmp/
- des=test
- inotifywait -mrq -e modify,delete,create,attrib $src | while read files
- do
- rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pwd $src [email protected]::$des >/dev/null 2>&1
- done