SUSE通過rsync inotify實現檔案同步

2021-09-09 07:27:51 字數 1988 閱讀 5477

最近現網出現了乙個現網問題,有主備兩個檔案儲存系統,其中主檔案儲存系統占用大小為15t,備用的檔案儲存系統占用大小為21t,導致備用檔案儲存系統告警

現網中採用的檔案同步系統是rsync+inotify-tools實現的

問題的原因在與同步的指令碼有問題,主檔案儲存系統導致檔案被刪除後沒有同步到備用檔案儲存系統。本人決定在開發環境進行搭建改系統驗證指令碼的正確性。

科普一下:

rsync是linux/unix下乙個用於遠端檔案(目錄)同步的乙個精巧的小工具程式。

inotify一種強大的、細粒度的、非同步檔案系統監控機制,它滿足各種各樣的檔案監控需要,可以監控檔案系統的訪問屬性、讀寫屬性、許可權屬性、刪除建立、移動等操作,也就是可以監控檔案發生的一切變化。

以下是搭建環境過程進行總結:

一.伺服器端

1.1.檢查伺服器是否已安裝rsync

zypper se rsync

如果未安裝,則進行安裝

zypper in rsync

安裝完rsync後,此時已經可以使用rsync進行同步檔案

# /usr/bin/rsync -ahqzt --delete /opt/huawei/disk/liujie [email protected]:/opt/huawei/disk/liujie/online_recovery.log.20180807

但是此時需要輸入密碼,如果想要去除密碼,可進行把

檢視cd /root/.ssh/

新增ssh認證:

#ssh-keygen -t rsa

一陣回車後,會生成id_rsa  id_rsa.pub兩個檔案,id_rsa為私鑰,id_rsa.pub為公鑰

將公鑰上傳到備份的伺服器上

#scp id_rsa.pub [email protected]:/root/.ssh/server_1

最後將金鑰匯入authorized_keys檔案

#cat server_1 >> authorized_keys

此時,在進行檔案同步,不需要密碼

1.2.檢查伺服器是否已安裝inotify-tools

which inotifywait

如果沒有安裝,出現如圖所示

# tar -xvzf inotify-tools-3.14.tar.gz

# cd inotify-tools-3.14/

#  ./configure && make && make install  ---安裝軟體

使用which inotifywait檢查

當出現上述字樣時,inotify-tools已安裝完畢

1.3.編寫同步指令碼

vi online_inotify_rsync.sh

新增執行許可權

# chmod +x online_inotify_rsync.sh

執行的過程中如果報缺少動態鏈結庫。如下圖所示

查詢該動態鏈結庫

/usr/local/lib為該原始碼包要用的庫的路徑,引入該環境變數的時候作業系統就會去找該變數下的類庫。

# export ld_library_path=/usr/local/lib:$ld_library_path

啟動指令碼(指令碼參見附件)

sh online_inotify_rsync.sh &

指令碼啟動成功後,客戶端顯示

伺服器端顯示

二。客戶端

2.1.檢查伺服器是否已安裝rync

參見1.1即可

三,現網問題解決

使用現在的指令碼在開發環境進行測試發現

這段**並沒有起到刪除備分儲存系統的檔案的作用

修改為可實現備檔案儲存系統隨著主檔案儲存系統的變化而變化,可實現檔案的增加刪除

但是原來備機上多餘的檔案將不能進行刪除,需要進行一次全量同步即可

/usr/bin/rsync -ahqzt --delete /opt/huawei/disk/liujie [email protected]:/opt/huawei/disk/liujie

環境搞了大半天終於搞定啦

suse搭建mysql集群 suse裝配mysql

suse 安裝 mysql 2.解壓 有很多個檔案,下面用到的就這兩個 mysql client 5.5.20 1.sles11.x86 64.rpm mysql server 5.5.20 1.sles11.x86 64.rpm 3.安裝伺服器 rpm ivh mysql server 5.5.2...

Suse操作小節

1.關閉防火牆 sudo susefirewall2 stop可能需要 etc init.d susefirewall2 setup start2.ssh登入 很可能是防火牆的問題 因此需要用步驟1方法關閉它或者開啟22埠。但是僅僅使用如下命令開啟22埠,還是無法ssh,暫時關閉防火牆 iptabl...

SUSE基礎學習

suse防火牆設定 1 yast2 安全和使用者 防火牆 來配置防火牆。2 suse預設的防火牆設定為禁止所有外來聯結。如果你想開放某個埠的話,就得修改防火牆設定開放這個埠。本文介紹了怎麼修改suse的防火牆設定以開放某指定埠。手動修改 vi etc sysconfig susefirewall2 ...