av日韩亚洲,一本一本a久久,亚洲一区二区三区,亚洲一区二区三区免费视频

基于安卓平臺的遠程監控linux系統設備設計

來源:期刊VIP網所屬分類:建筑工程時間:瀏覽:

  摘要:越來越多的設備使用linux作為操作系統,為了實現對設備的遠程監控與診斷,一般都將設備接入互聯網(或者局域網),再由一臺電腦接入該網絡進行遠程登錄,達到數據交換,傳輸的目的。

  如今,安卓手機已經相當普及,由于操作手機的便捷性,人們操作電腦的時間越來越少,使用手機越來越多,本設計基于安卓系統平臺,實現對linux系統設備進行遠程監控,及時發現設備問題,便于設備使用人員及管理人員使用,并且對數據進行存儲,并且有利于之后對數據進行進一步分析挖掘。

  關鍵詞:遠程登錄;遠程監控;linux系統設備

監控系統論文

  方案設計與實現:

  1 ssh 遠程登錄

  1.1 ssh簡介。SSH[1] (Secure Shell,安全協議外殼)是由 IETF ( Internet Engineering Task Force,國際 互聯網工程任務組)制定的一族協議,提供安全遠程登錄、安全文件傳輸等網絡服務功 能,還可以為其它應用層協議提供安全“通道”。SSH 對服務端和客戶端提供相互的 身份驗證功能,并且保證傳輸數據的加密性和完整性。使用 SSH 還有一個額外的優點:它會壓縮傳輸的數據,縮短傳輸所需的時間。SSH 協議的軟件程序由客戶端和服務器兩部分組成,以網絡應用層和傳輸層為基礎 [2]。

  1.2 ssh驗證。從客戶端來看,SSH提供兩種級別的安全驗證。

  第一種級別(基于口令的安全驗證)

  只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證你正在連接的服務器就是你想連接的服務器[3]。可能會有別的服務器在冒充真正的服務器,也就是受到“中間人”這種方式的攻擊。

  第二種級別(基于密匙的安全驗證)

  需要依靠密匙,也就是你必須為自己創建一對密匙,并把公用密匙放在需要訪問的服務器上。如果你要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用你的密匙進行安全驗證。服務器收到請求之后,先在該服務器上你的主目錄下尋找你的公用密匙,然后把它和你發送過來的公用密匙進行比較。如果兩個密匙一致,服務器就用公用密匙加密“質詢”(challenge)并把它發送給客戶端軟件。客戶端軟件收到“質詢”之后就可以用你的私人密匙解密再把它發送給服務器。

  用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網絡上傳送口令。

  綜上所述,選用安全的ssh協議來登錄linux設備。驗證方式由于驗證的數控機床只支持賬號和口令的方式,所以選用第一種方式。

  1.3 ssh庫選用。在本項目中引入jsch庫,jsch 是一個基于ssh的java庫,可以支持安卓設備用于ssh登錄以及文件傳輸,shell腳本操作,由于android基于java語言進行開發,所以可以以導入jar包的方式導入jsch庫。

  1.4異步任務庫選用。

  此外,還有一個很重要的庫。Rx(ReactiveX,響應式編程)是一種事件驅動的基于異步數據流的編程模式,整個數據流就像一條河流,它可以被觀測(監聽),過濾,操控或者與其他數據流合并為一條新的數據流。而RxJava是.Net Rx在JVM上的實現。RxJava可以應用于大部分基于JVM的語言,如Scala,Groovy等。

  Rxjava引入,用于異步任務操作,并且可以在主線程子線程中切換,因為連接,傳輸文件屬于耗時操作,不能夠在主線程中進行,rxjava還帶有錯誤處理機制,在連接錯誤的時候可以進行處理。

  RxJava特點

  ·函數響應式編程

  ·異步

  ·事件驅動的

  ·基于觀察者模式

  ·專門的出錯處理,當使用RxJava出現錯誤時,它不會直接拋出異常,而是會執行OnError()方法;

  ·并發,可以很容易實現多線程

  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是否能聯通

  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;

  //根據返回值判斷是否連接成功

  if (!res) {

  callbackContext.error("connectfalse");1 [2] [3]

  推薦閱讀:橋梁施工監控論文投哪個期刊

主站蜘蛛池模板: 平安县| 儋州市| 台前县| 金乡县| 达日县| 漯河市| 蓬溪县| 赤城县| 文山县| 慈利县| 大冶市| 佛教| 库伦旗| 连南| 伊宁市| 福泉市| 库伦旗| 通许县| 天等县| 兴化市| 东安县| 青铜峡市| 瑞金市| 漳浦县| 茶陵县| 东城区| 济南市| 漳州市| 新巴尔虎右旗| 娄烦县| 和林格尔县| 阜宁县| 策勒县| 扎兰屯市| 铁岭县| 山阳县| 三河市| 江都市| 姜堰市| 峡江县| 西和县|