linux文件實時同步程序

點擊下載 filesync實時同步程序

點擊下載 filesync實時同步程序使用手冊

filesync實時同步系統是 WnNanhui 個人研究開發Linux操作系統下文件實時同步軟件,它以Linux內核作爲基礎,採用C++ 11編程技術,將事件掃描技術和數據傳輸技術加載在操作系統底層,實現了對文件系統發生的所有事件 ( 新增 | 刪除 | 內容修改 | 屬性修改 | 移入 | 移除 ) 進行實時檢測和同步,徹底解決Linux系統下文件無法實時同步的問題。

filesync實時同步系統的必須使用模式爲:

  1. 服務端模式( server ): 部署在源端服務器上,負責監視Linux文件系統發生的事件,並將事件任務通過安全通信發送到目標服務器。它也是系統的核心。
  2. 客戶端模式( client ): 部署在目標端服務器上,負責接收並執行服務端服務器發送來的事件任務。

filesync實時同步系統的可選使用模式爲:

  1. 控制端模式( control ): 運行在管理員的shell窗口上,提供遠程方式對filesync實時同步系統工作狀態進行查看。

filesync實時同步系統最佳適用情形:

  1. CMS內容管理服務器一對N實時發佈。
  2. web服務器一對N同步更新。
  3. 文件服務器文件實時熱備。

本文檔適用的版本是filesync實時同步系統V1.0.0,適用的環境爲:

  1. Linux Kernel >= 2.6.13 、 g++ version >= 4.8
  2. 注: 系統只對linux內核以及g++版本有要求, 故對於現市面上的linux發行版本都是支持的。例如: Redhat系列、Centos系列、Ubuntu系列、Debain系列等。

第一章:filesync概述

1.1 filesync是什麼

filesync實時同步系統是對任意文件發生的所有事件進行實時檢測和同步的軟件。

filesync實時同步系統(以下簡稱filesync)以Linux內核作爲基礎,採用C++ 11編程技術,將事件掃描技術和文件傳輸技術加載在操作系統底層,實現了對任意文件發生的所有事件 ( 新增 | 刪除 | 內容修改 | 屬性修改 | 移入 | 移除 ) 進行實時檢測和同步,徹底解決Linux系統下文件無法實時同步的問題。

filesync運行後,將會對在配置文件中配置的源目錄以及目錄下的所有文件進行監控,一旦檢測到有事件發生,立即對該事件進行記錄,在確認事件已經完成後,根據配置文件中的同步規則生成任務,並將生成好的任務發送到目標服務器上,客戶端服務器執行任務,完成文件的實時同步。

  1. 支持所有主流的操作系統,包括: Redhat系列、Centos系列、Ubuntu系列、Debain系列等

1.2 filesync的使用模式

1.2.1 使用模式

filesync實時同步系統包含兩種必須的使用模式: 服務端( server )和客戶端( client )。

物理上它們運行在兩臺機器上: 服務端運行在源端服務器上,客戶端運行在目標端服務器上。

filesync實時同步系統包含兩種可選的使用模式: 控制端( control ),可以運行在管理員的shell窗口上,提供遠程方式對filesync實時同步系統工作狀態進行查看的功能。

1.2.2 服務端模式

服務端模式( server )運行在源端服務器上,完成以下功能:

  1. 監測文件系統變化(包括新增 | 刪除 | 內容修改 | 屬性修改 | 移入 | 移除),產生對應的事件, 在確認事件已經完成後,根據配置文件中的同步規則生成任務;
  2. 將任務通過tcp協議發送到客戶端上;
  3. 接受和處理客戶端控制端發來的信號;
  4. 當檢查到客戶端離線後,啓動郵件告警;
  5. 提供日常監控和管理功能(包括系統配置、運行審計等)。

1.2.3 客戶端模式

客戶端模式( client )運行在目標服務器上,完成以下功能:

  1. 接受和處理服務端發送過來的任務;
  2. 服務端發送任務執行結果已經自身運行狀態。

1.2.4 控制端模式

控制端模式( control )運行在管理員的shell窗口上,提供遠程方式對filesync實時同步系統工作狀態進行查看的功能。

  1. 以圖形方式顯示filesync實時同步系統的使用說明;
  2. 以圖形方式顯示filesync實時同步系統的服務端、客戶端的運行情況;
  3. 以圖形方式顯示filesync實時同步系統的同步規則配置;

1.3 filesync的工作原理

在沒有使用filesync實時同步系統的情況下,用戶利用人工手動上傳或者使用腳本的方式定時把文件同步到目標服務器上。在使用filesync實時同步系統的情況下,文件同步的工作由filesync來完成。

filesync實時同步系統工作原理如下圖(圖示1-1)所示,通過各部件之間的協同工作,實現了文件實時同步的功能。

圖示 1-1 filesync工作原理示意圖

第二章:filesync服務端

2.1 filesync服務端概述

2.1.1 功能

服務端的功能爲:

  1. 監測文件系統變化(包括新增 | 刪除 | 內容修改 | 屬性修改 | 移入 | 移除),產生對應的事件, 在確認事件已經完成後,根據配置文件中的同步規則生成任務;
  2. 將任務通過tcp協議發送到客戶端上;
  3. 接受和處理客戶端控制端發來的信號;
  4. 當檢查到客戶端離線後,啓動郵件告警;
  5. 提供日常監控和管理功能(包括系統配置、運行審計等)。

2.1.2 準備

服務端在使用前需要準備:

  1. 確定將使用服務端的服務器的機器,確定操作系統版本,內核版本,g++版本;
  2. 準備好filesync可執行程序和filesync的許可文件。

2.1.3 任務關係

  1. 前置任務:無;
  2. 後續任務:無。

2.2 filesync服務端使用

2.2.1 環境準備

1.操作系統要求

  1. Linux Kernel >= 2.6.13
  2. g++ version >= 4.8

2.所需文件

filesync服務端使用所需文件見下表(表格2-1):

模塊

文件

filesync可執行程序

filesync

filesync配置文件

filesync.conf

filesync許可文件

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.license

表格 2-1 filesync服務端使用所需文件

2.2.2 安裝過程

  1. 使用root登錄linux系統;
  2. 將壓縮包filesync_x.x.x.tar.gz保存到任意一臨時目錄;
  3. 解開壓縮包'tar zxvf filesync_x.x.x.tar.gz';
  4. 'cd filesync_x.x.x'目錄,並執行'./install.sh'根據提示完成安裝。

2.2.3 啓動和停止

假設filesync安裝在/usr/local/filesync目錄下:

1.filesync以服務端模式啓動filesync

前端運行命令,在終端輸入: 'cd /usr/local/filesync && ./filesync server filesync.conf'

後臺運行命令,在終端輸入: 'cd /usr/local/filesync && nohup ./filesync server filesync.conf > filesync_server.logs'

2.停止filesync服務端模式

在終端輸入:'ps -ef | grep "filesync server" | grep -v grep | awk '{print $2}' | xargs kill -9'

2.2.4 確定filesync以服務端模式已經啓動

在終端輸入:'netstat -an | grep -i listen | grep 10086',應該能看到10086端口正處於監聽狀態。

2.3 filesync服務端同步規則介紹

2.3.1 同步方式

服務端服務器的源目錄下的文件變化反映在客戶端服務器的相應目標目錄下,稱爲同步。

在同步規則中,可以設置過濾選項對一些特定類型或目錄下的文件進行忽略監控或者同步,例如數據庫文件、計數器文件、臨時文件可以根據需要設置爲忽略同步。

2.3.2 同步規則

  1. 目錄路徑不要以"/"符號結尾,不同的規則使用不同的同步名稱。
  2. 每一個同步規則下只能有一個源目錄,允許有多個目標目錄,不同的同步規則下源目錄可以重複。
  3. 允許每一個同步規則下可以有多個目標服務器,並且不同的同步規則下目標服務器可以重複。
  4. 每一個同步規則下可以有多個忽略同步目錄以及忽略同步規則,並且不同的同步規則下忽略同步目錄以及忽略同步規則可以重複。

圖示 2-1 同步規則

2.4 filesync服務端配置文件

默認的filesync服務端配置文件路徑爲:"filesync/filesync.conf", 例如:'/usr/local/filesync/filesync.conf '。

配置文件內容如下:

#規則配置說明: #:註釋,配置項=值,“=”左右邊不允許存在空格,例如:port = 10086

[system_configure]
#服務端使用的端口,默認port=10086
port=10086
#網絡超時時間,用於判斷客戶端是否已經離線,單位:秒,默認network_timeout=10
network_timeout=20
#自動恢復失敗任務,1:開啓,0:不開啓,默認auto_restore_fail_task=1
auto_restore_fail_task=1
#任務持久化,1:開啓,0:不開啓,默認persistence_task=1
#當服務端重啓,若上一次有未完成的任務時,是否繼續執行
persistence_task=1
#許可文件路徑
license_file=6e65b94b8b8e09c9b141e4f25387085a.license

#支持163/126郵箱,配置後,支持客戶端離線報警
[email]
#是否啓用郵件報警,1:啓用,0:不啓用
status=1
#發件人郵箱地址
[email protected]
#收件人郵箱地址,有多個就配置多行即可
[email protected]
[email protected]
#郵件服務器地址
email_server_address=smtp.163.com
#郵件服務器登錄帳戶
[email protected]
#郵件服務器登錄帳戶密碼
email_server_password=xxxxxxxxxxxxxxx

#注意:目錄路徑不要以"/"符號結尾,不同的規則使用不同的同步名稱
#每一個同步規則下只能有一個源目錄,允許有多個目標目錄,不同的同步規則下源目錄可以重複
#允許每一個同步規則下可以有多個目標服務器,並且不同的同步規則下目標服務器可以重複
#每一個同步規則下可以有多個忽略同步目錄以及忽略同步規則,並且不同的同步規則下忽略同步目錄以及忽略同步規則可以重複
#同步規則,同步規則名稱:RULE_1
[rule::RULE_1]
#源目錄
src_dir=/tmp/filesync/src1
#目標目錄
dst_dir=/tmp/filesync/dst1
dst_dir=/tmp/filesync/dst2
#目標服務器
dst_ip=192.168.60.130
dst_ip=192.168.60.132
dst_ip=192.168.0.11
dst_ip=192.168.0.12
#忽略同步目錄
ignore_dir=/tmp/filesync/src1/ignore_dir
#忽略同步規則
ignore_rule=/tmp/filesync/src1/*.swp
ignore_rule=/tmp/filesync/src1/*.swx
ignore_rule=/tmp/filesync/src1/*.swpx
#是否啓動該同步規則,1:啓用,0:不啓用
rule_status=1

#同步規則,同步規則名稱:RULE_2
[rule::RULE_2]
#源目錄
src_dir=/tmp/filesync/src1
#目標目錄
dst_dir=/tmp/filesync/dst3
#目標服務器
dst_ip=192.168.0.13
dst_ip=192.168.0.14
#忽略同步目錄
ignore_dir=/tmp/filesync/src3/ignore_dir
#忽略同步規則
ignore_rule=/tmp/filesync/src3/*.swp
ignore_rule=/tmp/filesync/src3/*.swx
ignore_rule=/tmp/filesync/src3/*.swpx
#是否啓動該同步規則,1:啓用,0:不啓用
rule_status=0

字段詳細說明見下表(表格2-2):

[system_configure]段

port

服務端使用的端口,默認port=10086

network_timeout

網絡超時時間,用於判斷客戶端是否已經離線,單位:秒,默認network_timeout=10

auto_restore_fail_task

自動恢復失敗任務,1:開啓,0:不開啓,默認auto_restore_fail_task=1

persistence_task

任務持久化,1:開啓,0:不開啓,默認persistence_task=1
當服務端重啓,若上一次有未完成的任務時,是否在下一次啓動後繼續執行

license_file

許可文件路徑,默認license_file=filesync.license

[email]段

status

是否啓用郵件報警,1:啓用,0:不啓用

sender_email_address

發件人郵箱地址

recipient_email_address

收件人郵箱地址,有多個就配置多行即可

email_server_address

郵件服務器地址

email_server_user

郵件服務器登錄帳戶

email_server_password

郵件服務器登錄帳戶密碼

[rule::]段

src_dir

源目錄,每一個同步規則下只能有一個源目錄,不同的同步規則下源目錄可以重複
注意:目錄路徑不要以"/"符號結尾

dst_dir

目標目錄,有多個就配置多行即可
每一個同步規則下有多個目標目錄,不同的同步規則下目標目錄可以重複
注意:目錄路徑不要以"/"符號結尾

dst_ip

目標服務器,有多個就配置多行即可
每一個同步規則下可以有多個目標服務器,不同的同步規則下目標服務器可以重複

ignore_dir

忽略同步目錄,將配置的目錄從監控列表中移除,對於該目錄下的文件系統事件不會監聽,有多個就配置多行即可
每一個同步規則下可以有多個忽略同步目錄,不同的同步規則下忽略同步目錄可以重複
注意:目錄路徑不要以"/"符號結尾

ignore_rule

忽略同步規則,將監聽的事件忽略同步規則進行配置,若符合忽略同步規則,則將該事件忽略,有多個就配置多行即可
每一個同步規則下可以有多個忽略同步規則,並且不同的同步規則下忽略同步規則可以重複
注意:目錄路徑不要以"/"符號結尾

rule_status

是否啓動該同步規則,1:啓用,0:不啓用

表格 2-2 filesync服務端配置文件


注意:對filesync服務端配置文件做任何手工修改,都需要重啓filesync服務端,才能使修改生效。

2.5 filesync服務端使用圖例

2.5.1 filesync服務端模式啓動圖例:

2.5.2 郵件告警圖例:

第三章:filesync客戶端

3.1 filesync客戶端概述

3.1.1 功能

客戶端的功能爲:

  1. 接受和處理服務端發送過來的任務;
  2. 服務端發送任務執行結果以及自身運行狀態。

3.1.2 準備

客戶端在使用前需要準備:

  1. 確定將使用客戶端的服務器的機器,確定操作系統版本,內核版本,g++版本;
  2. 準備好filesync可執行程序。

3.1.3 任務關係

  1. 前置任務:無;
  2. 後續任務:無。

3.2 filesync客戶端使用

3.2.1 環境準備

1.操作系統要求

  1. Linux Kernel >= 2.6.13
  2. g++ version >= 4.8

2.所需文件

filesync客戶端使用所需文件見下表(表格3-1):

模塊

文件

filesync可執行程序

filesync

表格 3-1 filesync客戶端使用所需文件

3.2.2 安裝過程

  1. 使用root登錄linux系統;
  2. 將壓縮包filesync_x.x.x.tar.gz保存到任意一臨時目錄;
  3. 解開壓縮包'tar zxvf filesync_x.x.x.tar.gz';
  4. 'cd filesync_x.x.x'目錄,並執行'./install.sh'根據提示完成安裝。

3.2.3 啓動和停止

假設filesync安裝在/usr/local/filesync目錄下, filesync服務端的IP爲192.168.0.100, 使用端口爲:10086:

1.filesync以客戶端模式啓動filesync

前端運行命令,在終端輸入: 'cd /usr/local/filesync && ./filesync client 192.168.0.100 10086'

後臺運行命令,在終端輸入: 'cd /usr/local/filesync && nohup ./filesync client 192.168.0.100 10086 > filesync_client.logs'

2.停止filesync客戶端模式

在終端輸入:'ps -ef | grep "filesync client" | grep -v grep | awk '{print $2}' | xargs kill -9'

3.2.4 確定filesync以客戶端模式已經啓動

在終端輸入:'ps -ef | grep "filesync client"',查看是否有filesync服務端進程。

3.3 filesync客戶端使用圖例

3.3.1 filesync客戶端模式啓動圖例:

第四章:filesync控制端

4.1 filesync控制端概述

4.1.1 功能

控制端的功能爲:

  1. 以圖形方式顯示filesync實時同步系統的使用說明;
  2. 以圖形方式顯示filesync實時同步系統的服務端控制端的運行情況;
  3. 以圖形方式顯示filesync實時同步系統的同步規則配置;

4.1.2 準備

控制端在使用前需要準備:

  1. 確定將使用控制端的服務器的機器,確定操作系統版本,內核版本,g++版本;
  2. 準備好filesync可執行程序.

4.1.3 任務關係

  1. 前置任務:無;
  2. 後續任務:無.

4.2 filesync控制端使用

4.2.1 環境準備

1.操作系統要求

  1. Linux Kernel >= 2.6.13
  2. g++ version >= 4.8

2.所需文件

filesync控制端使用所需文件見下表(表格4-1):

模塊

文件

filesync可執行程序

filesync

表格 4-1 filesync控制端使用所需文件


4.2.2 安裝過程

  1. 使用root登錄linux系統;
  2. 將壓縮包filesync_x.x.x.tar.gz保存到任意一臨時目錄;
  3. 解開壓縮包'tar zxvf filesync_x.x.x.tar.gz';
  4. 'cd filesync_x.x.x'目錄,並執行'./install.sh'根據提示完成安裝。

4.2.3 啓動和停止

假設filesync安裝在/usr/local/filesync目錄下, filesync服務端的IP爲192.168.0.100, 使用端口爲:10086:

1.filesync以控制端模式啓動filesync

在終端輸入: 'cd /usr/local/filesync && ./filesync control 1 192.168.0.100 10086'

2.停止filesync控制端模式

在終端輸入:'ps -ef | grep "filesync control" | grep -v grep | awk '{print $2}' | xargs kill -9'

4.2.4 確定filesync以控制端模式已經啓動

在終端輸入:'ps -ef | grep "filesync control"',查看是否有filesync控制端進程。

4.3 filesync控制端使用圖例

4.3.1 顯示使用說明:

4.3.2 顯示filesync控制端使用說明:

4.3.3 顯示filesync服務端和客戶端運行狀態:

4.3.4 顯示filesync服務端運行狀態:

4.3.5 顯示filesync客戶端運行狀態:

4.3.6 顯示同步規則:

4.3.7 顯示系統環境變量:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章