期刊VIP學術(shù)指導(dǎo) 符合學術(shù)規(guī)范和道德
保障品質(zhì) 保證專業(yè),沒有后顧之憂
來源:期刊VIP網(wǎng)所屬分類:建筑工程時間:瀏覽:次
摘要:越來越多的設(shè)備使用linux作為操作系統(tǒng),為了實現(xiàn)對設(shè)備的遠程監(jiān)控與診斷,一般都將設(shè)備接入互聯(lián)網(wǎng)(或者局域網(wǎng)),再由一臺電腦接入該網(wǎng)絡(luò)進行遠程登錄,達到數(shù)據(jù)交換,傳輸?shù)哪康摹?/p>
如今,安卓手機已經(jīng)相當普及,由于操作手機的便捷性,人們操作電腦的時間越來越少,使用手機越來越多,本設(shè)計基于安卓系統(tǒng)平臺,實現(xiàn)對linux系統(tǒng)設(shè)備進行遠程監(jiān)控,及時發(fā)現(xiàn)設(shè)備問題,便于設(shè)備使用人員及管理人員使用,并且對數(shù)據(jù)進行存儲,并且有利于之后對數(shù)據(jù)進行進一步分析挖掘。
關(guān)鍵詞:遠程登錄;遠程監(jiān)控;linux系統(tǒng)設(shè)備

方案設(shè)計與實現(xiàn):
1 ssh 遠程登錄
1.1 ssh簡介。SSH[1] (Secure Shell,安全協(xié)議外殼)是由 IETF ( Internet Engineering Task Force,國際 互聯(lián)網(wǎng)工程任務(wù)組)制定的一族協(xié)議,提供安全遠程登錄、安全文件傳輸?shù)染W(wǎng)絡(luò)服務(wù)功 能,還可以為其它應(yīng)用層協(xié)議提供安全“通道”。SSH 對服務(wù)端和客戶端提供相互的 身份驗證功能,并且保證傳輸數(shù)據(jù)的加密性和完整性。使用 SSH 還有一個額外的優(yōu)點:它會壓縮傳輸?shù)臄?shù)據(jù),縮短傳輸所需的時間。SSH 協(xié)議的軟件程序由客戶端和服務(wù)器兩部分組成,以網(wǎng)絡(luò)應(yīng)用層和傳輸層為基礎(chǔ) [2]。
1.2 ssh驗證。從客戶端來看,SSH提供兩種級別的安全驗證。
第一種級別(基于口令的安全驗證)
只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸?shù)臄?shù)據(jù)都會被加密,但是不能保證你正在連接的服務(wù)器就是你想連接的服務(wù)器[3]。可能會有別的服務(wù)器在冒充真正的服務(wù)器,也就是受到“中間人”這種方式的攻擊。
第二種級別(基于密匙的安全驗證)
需要依靠密匙,也就是你必須為自己創(chuàng)建一對密匙,并把公用密匙放在需要訪問的服務(wù)器上。如果你要連接到SSH服務(wù)器上,客戶端軟件就會向服務(wù)器發(fā)出請求,請求用你的密匙進行安全驗證。服務(wù)器收到請求之后,先在該服務(wù)器上你的主目錄下尋找你的公用密匙,然后把它和你發(fā)送過來的公用密匙進行比較。如果兩個密匙一致,服務(wù)器就用公用密匙加密“質(zhì)詢”(challenge)并把它發(fā)送給客戶端軟件。客戶端軟件收到“質(zhì)詢”之后就可以用你的私人密匙解密再把它發(fā)送給服務(wù)器。
用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網(wǎng)絡(luò)上傳送口令。
綜上所述,選用安全的ssh協(xié)議來登錄linux設(shè)備。驗證方式由于驗證的數(shù)控機床只支持賬號和口令的方式,所以選用第一種方式。
1.3 ssh庫選用。在本項目中引入jsch庫,jsch 是一個基于ssh的java庫,可以支持安卓設(shè)備用于ssh登錄以及文件傳輸,shell腳本操作,由于android基于java語言進行開發(fā),所以可以以導(dǎo)入jar包的方式導(dǎo)入jsch庫。
1.4異步任務(wù)庫選用。
此外,還有一個很重要的庫。Rx(ReactiveX,響應(yīng)式編程)是一種事件驅(qū)動的基于異步數(shù)據(jù)流的編程模式,整個數(shù)據(jù)流就像一條河流,它可以被觀測(監(jiān)聽),過濾,操控或者與其他數(shù)據(jù)流合并為一條新的數(shù)據(jù)流。而RxJava是.Net Rx在JVM上的實現(xiàn)。RxJava可以應(yīng)用于大部分基于JVM的語言,如Scala,Groovy等。
Rxjava引入,用于異步任務(wù)操作,并且可以在主線程子線程中切換,因為連接,傳輸文件屬于耗時操作,不能夠在主線程中進行,rxjava還帶有錯誤處理機制,在連接錯誤的時候可以進行處理。
RxJava特點
·函數(shù)響應(yīng)式編程
·異步
·事件驅(qū)動的
·基于觀察者模式
·專門的出錯處理,當使用RxJava出現(xiàn)錯誤時,它不會直接拋出異常,而是會執(zhí)行OnError()方法;
·并發(fā),可以很容易實現(xiàn)多線程
1.5建立連接。
private void initPingCNCData(final String ip, final String password, final CallbackContext callbackContext){
Observable.create(new Observable.OnSubscribe() {
@Override
public void call(Subscriber subscriber) {
//1.ping device,檢測對方ip是否能聯(lián)通
boolean res = AllUitls.ping(ip, 3);
//2.建立session連接
JSch jsch = new JSch();
try {
session = jsch.getSession(HOST, ip, 22);
session.setPassword(password);
session.connect();
int result = 0;
//根據(jù)返回值判斷是否連接成功
if (!res) {
callbackContext.error("connectfalse");1 [2] [3]
推薦閱讀:橋梁施工監(jiān)控論文投哪個期刊