歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux命令 >> 使用Linux的rsync命令實現:多服務器鏡像同步

使用Linux的rsync命令實現:多服務器鏡像同步

日期:2017/2/28 10:02:50   编辑:Linux命令
Linux命令

實現功能:當用戶在本地客戶端某目錄內建立、修改、刪除目錄或文件、修改目錄或文件的屬性,只要執行相同的shell腳本,rsync就會自動找出有改動或刪除的數據,將其傳送到服務器上,使Linux服務器端某目錄內的數據跟本地客戶端某目錄內的數據保持一致。

  ★方式一:

  一、服務器端(例:10.0.0.1*):

  1、創建用戶和組

groupadd www -g 48

useradd -u 48 -g www www

mkdir -p /opt/htdocs

chmod +w /opt/htdocs

chown www:www /opt/htdocs

  2、編輯rsync的配置文件

vi /etc/rsyncd.conf

  輸入以下內容:

uid=www

gid=www

max connections=10

use chroot=no

log file=/var/log/rsyncd.log

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsyncd.lock

[zhangyan]

path=/opt/htdocs

comment = my htdocs

ignore errors

read only = no

hosts allow=10.0.0.21 10.0.0.22

  3、啟動rsync服務器端

/usr/bin/rsync --daemon

  二、客戶端(例:10.0.0.21和10.0.0.22):

  1、創建一個shell腳本push.sh

vi push.sh

  輸入以下內容(10.0.0.1*為要推送到的目標服務器,zhangyan為服務器端rsyncd.conf配置文件中的模塊名):

引用

#!/bin/sh

/usr/bin/rsync -vzrtopg --delete $1 10.0.0.10::zhangyan/

/usr/bin/rsync -vzrtopg --delete $1 10.0.0.11::zhangyan/

/usr/bin/rsync -vzrtopg --delete $1 10.0.0.16::zhangyan/

/usr/bin/rsync -vzrtopg --delete $1 10.0.0.19::zhangyan/

注:因為是內部局域網之間傳輸,這裡沒有設置密碼。

  2、賦予push.sh執行權限

chmod +x ./push.sh

  3、同步推送客戶端某個目錄中(例:/home/zhanguan/abc)的文件到服務器端的/opt/htdocs目錄:

./push.sh /home/zhanguan/abc/

  注意:不要忘了abc後面的/。如果更改的文件太大,可以在上面語句的末尾加上空格和&號,推到後台執行。例:

./push.sh /home/zhanguan/abc/ &

  ★方式二:

  一、服務器端(例:10.0.0.1*):

  1、創建用戶和組

groupadd www -g 48

useradd -u 48 -g www www

mkdir -p /opt/htdocs

chmod +w /opt/htdocs

chown www:www /opt/htdocs

passwd www

為www用戶設置一個密碼。

  二、客戶端:

  1、同步推送客戶端某個目錄中(例:/home/zhanguan/abc)的文件到服務器端的/opt/htdocs目錄:

/usr/bin/rsync -vzrtopg --delete /home/zhanguan/abc/ -e ssh [email protected]:/opt/htdocs/

輸入密碼,回車即可,無須服務器端啟動rsync服務。


Copyright © Linux教程網 All Rights Reserved