隻有有了新的需求,才可以激發相應的動力去做事情!
最新有個新的需求-- 需要在Linux同步檔案夾
我繪制了其邏輯圖,如下:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZD9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwldRhlW1VTaitmTzkVdjJjYzpkMMZ3bENGMShUYvwFd4VGdvwlMvw1ayFWbyVGdhd3P0QzM0QzM1YTMxIDOwUTMwIzLcRXZu5ibkN3Yuc2bsJmLn1Wavw1LcpDc0RHaiojIsJye.jpg)
因為源資料庫伺服器裡面的内容是定時變化的,而我不可能每時每刻都将資料同步到各個伺服器,而隻能定時的将資料同步到目标伺服器裡面。
下面說下配置rsync的步驟:
下面這個是我根據參考文章修改後的,并且添加了一些我自己的經驗總結。
說明:
作業系統:CentOS-6.7-x86_64-minimal.iso
源伺服器:192.168.11.130, 該機安裝時設定的使用者名為 oldmtn2
目标伺服器:192.168.11.128,
該機安裝時設定的使用者名為 oldmtn
目的:把源伺服器上/root/ceshi/目錄實下所有檔案同步到目标伺服器的/root/folder1/下
具體操作:
第一部分:在目标伺服器192.168.11.128上操作
一、分别在兩台在目标伺服器安裝Rsync服務端
1、關閉SELINUX
知識科普:SElinux是Linux安全加強工具。關閉用setenforce 0或者修改檔案vim /etc/sysconfig/selinux 把SELINUX=enforcing 改為 SELINUX=disabled.linux防火牆用chkconfig
iptables on 開機啟動 service iptables start 打開防火牆規則。
vi /etc/selinux/config #編輯防火牆配置檔案
#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加
:wq! #儲存,退出
setenforce 0 #立即生效,
其實就是關閉Linux的安全加強工具。
2、開啟防火牆tcp 873端口(Rsync預設端口)
如果不打開873端口的話,源伺服器同步檔案時将會出現"rsync: failed to connect to : No route to host"的錯誤。
vi /etc/sysconfig/iptables #編輯防火牆配置檔案
-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT #打開873端口,這條規則要加在REJECT規則前
/etc/init.d/iptables restart #最後重新開機防火牆使配置生效
這一步現在還有問題,因為提示我上面紅色部分的代碼有問題,是以我先把不開啟防火牆吧。。
3、安裝Rsync服務端軟體
yum install rsync xinetd #安裝
vi /etc/xinetd.d/rsync #編輯配置檔案,設定開機啟動rsync
disable = no #修改為no
:wq! #儲存退出
/etc/init.d/xinetd start #啟動(CentOS中是以xinetd來管理Rsync服務的)
4、建立rsyncd.conf配置檔案
vi /etc/rsyncd.conf #建立配置檔案,添加以下代碼
log file = /var/log/rsyncd.log #日志檔案位置,啟動rsync後自動産生這個檔案,無需提前建立
pidfile = /var/run/rsyncd.pid #pid檔案的存放位置
lock file = /var/run/rsync.lock #支援max
connections參數的鎖檔案
secrets file = /etc/rsync.pass #使用者認證配置檔案,裡面儲存使用者名稱和密碼,後面會建立這個檔案
motd file = /etc/rsyncd.Motd #rsync啟動時歡迎資訊頁面檔案位置(檔案内容自定義)
[test1] #自定義名稱,
後面源伺服器發送檔案的時候需要知道這個test1
path = /root/folder1/ #rsync服務端資料目錄路徑,從test1接受的檔案都存放到這個夾子裡面
comment = test1 #子產品名稱與[test1]自定義名稱相同
uid = root #設定rsync運作權限為root
gid = root #設定rsync運作權限為root
port=873 #預設端口
use chroot = no #預設為true,修改為no,增加對目錄檔案軟連接配接的備份
read only = no #設定rsync服務端檔案為讀寫權限
list = no #不顯示rsync服務端資源清單
max connections = 200 #最大連接配接數
timeout = 600 #設定逾時時間
auth users = root #執行資料同步的使用者名,可以設定多個,用英文狀态下逗号隔開
hosts allow = 192.168.11.130 #允許進行資料同步的用戶端IP位址,可以設定多個,用英文狀态下逗号隔開
hosts deny = 192.168.21.254 #禁止資料同步的用戶端IP位址,可以設定多個,用英文狀态下逗号隔開
:wq! #儲存,退出
5、建立使用者認證檔案
vi /etc/rsync.pass #配置檔案,添加以下内容
root:123456 #格式,使用者名:密碼,可以設定多個,每行一個使用者名:密碼,在這裡設定後,
:wq! #儲存,退出
6、設定檔案權限
chmod 600 /etc/rsyncd.conf #設定檔案所有者讀取、寫入權限
chmod 600 /etc/rsync.pass #設定檔案所有者讀取、寫入權限
7、啟動rsync
/etc/init.d/xinetd start #啟動
service xinetd stop #停止
service xinetd restart #重新啟動
第二部分:在源伺服器192.168.11.130上操作
一、安裝Rsync用戶端
setenforce 0 #立即生效
2、開啟防火牆tcp 873端口(Rsync預設端口,做為用戶端的Rsync可以不用開啟873端口)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT #打開873端口,這條規則要加在REJECT規則前
3、安裝Rsync用戶端軟體
whereis rsync #檢視系統是否已安裝rsync,出現下面的提示,說明已經安裝
rsync: /usr/bin/rsync /usr/share/man/man1/rsync.1.gz
yum install xinetd #隻安裝xinetd即可,CentOS中是以xinetd來管理rsync服務的
yum install rsync xinetd #如果預設沒有rsync,運作此指令進行安裝rsync和xinetd
disable = no #修改為
/etc/init.d/xinetd start #啟動(CentOS中是以xinetd來管理rsync服務的)
4、建立認證密碼檔案
vi /etc/passwd.txt #編輯檔案,添加以下内容
123456 #密碼
chmod 600 /etc/passwd.txt #設定檔案權限,隻設定檔案所有者具有讀取、寫入權限即可
5、測試源伺服器192.168.11.130到兩台目标伺服器192.168.11.128之間的資料同步
mkdir /root/ceshi #在源伺服器上建立測試檔案夾,然後在源伺服器運作下面2行指令
rsync -avH --port=873 --progress --delete /root/ceshi/ [email protected]::test1
--password-file=/etc/passwd.txt
運作完成後,分别在兩台目标伺服器192.168.11.128上檢視,在/root/folder/目錄下有了192.168.11.130的/root/ceshi/檔案夾下的所有内容,說明資料同步成功。