1.一種路由器間雙向同步的實現(xiàn)方法,其特征在于,包括以下步驟:
S1,在路由器R1的web服務(wù)器上添加插件A和插件B,插件A和插件B分別用于提供認(rèn)證、產(chǎn)生key和支持webdav協(xié)議,web服務(wù)器還提供UI端配置監(jiān)聽端口,提供保存config文件,提供認(rèn)證的key和賬號以及可同步目錄的config1;
S2,路由器R2提供UI端設(shè)定訪問路由器R1提供的URL請求地址,提供輸入在路由器R1上注冊得到的key,提供設(shè)定路由器R2端監(jiān)控的目錄config2,提供同步的時間點設(shè)置;
S3,路由器R2提供監(jiān)控目錄變化和針對變化作處理的程序p2;
S4,路由器p2程序由多個線程組成,多個線程之間協(xié)同配合完成路由器間數(shù)據(jù)的雙向同步。
2.根據(jù)權(quán)利要求1所述的路由器間雙向同步的實現(xiàn)方法,其特征在于,所述config1的文件配置為:{“port”:”<配置的監(jiān)聽端口>”,“<key>”:{"user":"<R2>","syncFloder":"<提供給R2的目錄>"}}。
3.根據(jù)權(quán)利要求1所述的路由器間雙向同步的實現(xiàn)方法,其特征在于,所述config2的文件配置為:{“config”:{"serverURL":"http://xx.xx.xx.xx:port/<R1提供的儲存目錄>","key":"<xxxxxx>","localFloder":"/mnt/sda/<R2提供的監(jiān)控目錄>",”syncTime”:”<同步的時間點>”}}。
4.根據(jù)權(quán)利要求1所述的路由器間雙向同步的實現(xiàn)方法,其特征在于,所述多個線程包括線程A、線程B和線程C,線程A用于監(jiān)控目錄的變化,線程B用于處理監(jiān)控的事件,線程C用于查詢路由器R1的同步目錄文件是否變化。
5.根據(jù)權(quán)利要求1所述的路由器間雙向同步的實現(xiàn)方法,其特征在于,所述程序p2的運行步驟如下:
步驟一,程序初始化,并讀取config2文件;
步驟二,進行相應(yīng)的環(huán)境變量設(shè)定,從而執(zhí)行線程A或線程B或線程C。
6.根據(jù)權(quán)利要求5所述的路由器間雙向同步的實現(xiàn)方法,其特征在于,所述線程A的執(zhí)行過程如下:
S1,線程A初始化;
S2,監(jiān)控目錄;
S3,儲存變化事件鏈表;
S4,判斷鏈表是否被lock,若鏈表被lock,則等待lock釋放,釋放后進行目錄更新;若鏈表未被lock,則直接進行目錄更新。
7.根據(jù)權(quán)利要求5所述的路由器間雙向同步的實現(xiàn)方法,其特征在于,所述線程B的執(zhí)行過程如下:
S1,線程B初始化;
S2,判斷同步時間,即判斷路由器R1和路由器R2的時間是否同步,若時間同步,則轉(zhuǎn)至判斷事件鏈表是否被lock;若時間不同步,表明線程阻塞,直到時間段正確,則轉(zhuǎn)至判斷事件鏈表是否被lock;
S3,事件鏈表未被lock,則轉(zhuǎn)至判斷線程C是否在同步,不論線程C是否在同步均要遍歷鏈表依次處理事件。
8.根據(jù)權(quán)利要求5所述的路由器間雙向同步的實現(xiàn)方法,其特征在于,所述線程C的執(zhí)行過程如下:
S1,線程C初始化;
S2,判斷判斷同步時間,即判斷路由器R1和路由器R2的時間是否同步,若時間同步,則每間隔5秒查詢路由器R1的同步目錄,并對比5秒內(nèi)路由器R1的同步目錄是否變化;若時間不同步,表明線程阻塞,直到時間段正確,則每間隔5秒查詢路由器R1的同步目錄,并對比5秒內(nèi)路由器R1的同步目錄是否變化;
S3,若路由器R1的同步目錄變化,則判斷線程B是否在本地同步,若線程B未在本地同步,則將路由器R1更新的文件下載至本地;若線程B在本地同步,則等待線程B同步完成。
9.根據(jù)權(quán)利要求所述5或6的路由器間雙向同步的實現(xiàn)方法,其特征在于,所述線程A的儲存事件的結(jié)構(gòu)體如下:
Typedef struct actionEvent{
Char action[20];//文件動作事件
Char*oldName;//舊文件名
Char*newName;//新文件名
Char*oldFolder;//舊目錄
Char*nerFolder;//新目錄
}
事件變化列表如下
{“modify”:”<文件被修改>”,
“addfile”:”<新增文件>”,
“move”:”<移動文件>”,
“rename”:”<文件被重命名>”,
“delete”:”<文件被刪除>”,
“dragfile”:”<文件被拖拽>”,
}。
10.基于權(quán)利要求1-9任一項所述的路由器間雙向同步的實現(xiàn)方法的系統(tǒng),其特征在于,包括路由器R1和路由器R2,路由器R1作為主路由器,路由器R2作為從路由器,路由器R1和R2均支持儲存設(shè)置,路由器R1內(nèi)含web服務(wù)器和配置訪問端口的接口;路由器R1提供注冊功能,支持注冊后提供唯一的認(rèn)證key,便于接入設(shè)備的認(rèn)證;路由器R1提供對webdav協(xié)議的支持;路由器R1提供配置同步目錄的接口,路由器R2提供本地同步目錄的配置接口,路由器R2提供監(jiān)控本地文件變化的程序;路由器R2提供處理監(jiān)控本地文件的動作進行響應(yīng)的程序;路由器R2提供查詢路由器R1的同步目錄是否變化的程序。