999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2020-12-08 02:12:05孫仲揚
數碼設計 2020年16期

孫仲揚

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

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

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

中圖分類號:TP277?? 文獻標識碼:A?? 文章編號:1672-9129(2020)16-0038-02

方案設計與實現:

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<? super String> 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");

} else {

subscriber.onNext("Device connected");

//建立連接完成,可讀取數據

getFilesInfo (session);

subscriber.onCompleted();

}

} catch (JSchException e) {

e.printStackTrace();

}

}

}

}).subscribeOn(Schedulers.io())

.timeout(20, TimeUnit.SECONDS)

.observeOn(AndroidSchedulers.mainThread())

.subscribe(new Subscriber() {

@Override

public void onError(Throwable throwable) {

callbackContext.error("connectfalse");

}

@Override

public void onNext(String str) {

//連接成功,接下來的工作在這里進行

}

});

}

2 scp讀取文件

scp是secure copy的縮寫,是用來進行遠程文件拷貝的。數據傳輸使用 ssh,并且和ssh 使用相同的認證方式,提供相同的安全保證。

scp命令是 SSH 中最方便有用的命令了,試想,在兩臺服務器之間直接傳送文件,僅僅用 scp 一個命令就完全解決了。你可以在一臺服務器上以 root 身份運行 #scp servername:/home/ftp/pub/file1 ./ 這樣就把另一臺服務器上的文件 /home/ftp/pub/file1 直接傳到本機器的當前目錄下,當然你也可以用 #scp /tmp/file2 servername:/boot 把本機上的文件 /tmp/file2 送到另一臺機器的 /boot 目錄下。而且整個傳送過程仍然是用 SSH 加密的

private int getFilesInfo(String fileFullPath, Session session) {

int res = -1;

String[] arg = new String[2];

arg[0] = fileFullPath;

arg[1] = cordova.getActivity().getFilesDir() + File.separator + temp;

int count = 3;

do {

res = ScpFrom.scpFrom(arg, session);

count--;

} while (res != 0 && count != 0);

return res;

}

3 安卓設備讀取xml文件并解析

可擴展標記語言,標準通用標記語言的子集,是一種用于標記電子文件使其具有結構性的標記語言。

在電子計算機中,標記指計算機所能理解的信息符號,通過此種標記,計算機之間可以處理包含各種的信息比如文章等。它可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。它非常適合萬維網傳輸,提供統一的方法來描述和交換獨立于應用程序或供應商的結構化數據。是Internet環境中跨平臺的、依賴于內容的技術,也是當今處理分布式結構信息的有效工具。早在1998年,W3C就發布了XML1.0規范,使用它來簡化Internet的文檔信息傳輸。

Pull解析XML:

Xml pull提供了開始元素和結束元素,當某個元素開始時,我們可以調用parser.nextText從XML文檔中提取所有字符數據。當解釋到一個文檔結束時,自動生成EndDocument

常用接口類:XmlPullParser, XmlSreializer, XmlPullParserFactory

特點是代碼實現較為簡單,非常適合移動設備,安卓系統內置pull解析器,而且安卓系統內部默認使用pull來解析xml文件

case XmlPullParser.START_TAG:

if (parser.getName().equals("Name")) {

String temp = parser.nextText();

if (temp.contains("SINUMERIK")) {

res += "{\\\\"name\\\\":\\\\"" + temp + "\\\\",";

}

} else if (parser.getName().equals("MLFB")) {

res += "\\\\"mlfb\\\\":\\\\"" + parser.nextText()+ "\\\\",";

}

else if (parser.getName().equals("SerialNo")) {

res += "\\\\"serialno\\\\":\\\\"" + parser.nextText()+ "\\\\",";

}

else if (parser.getName().equals("HW-ID")) {

res += "\\\\"hwid\\\\":\\\\"" + parser.nextText()+ "\\\\",";

finishFlag = false;

}

break;

case XmlPullParser.END_TAG:

break;

4 將解析出來的信息存入安卓本地sqlite數據庫

SQLite是一款輕型的數據庫,是遵守ACID的關系型數據庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源的世界著名數據庫管理系統來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月。

安卓系統中使用的就是sqlite數據庫。在本系統中應用對sqlite進行封裝后的Ormlite框架。

OrmLite是一個數據庫操作輔助的開源框架,底層還是Sqlite。O-R-M是Object relational mapping(對象關系映射)的縮寫,即業務實體對象與關系型數據庫之間的映射。對象中的屬性與數據庫表中的字段一一對應。OrmLite直接操作業務對象,隱藏了數據庫操作的細節,使我們不用通過sql語句與數據庫打交道。OrmLite通過Java注解的方式與數據庫建立映射關系。

建立javabean文件,用來映射數據表中數據,建立ormlitedatabasehelper建立java與sqlite數據庫之間的關系,將解析出來的xml數據存入數據庫中。

public void upDateParam(String key, String value, String type, String user_name, String project_name, int paramnum) throws SQLException {

ParamAll paramAll = getParamEach(type, key, user_name, project_name, paramnum).get(0);

paramAll.setValue(value);

Dao dao = getDao(ParamAll.class);

dao.update(paramAll);

}

5 讀取數據庫信息并顯示在手機屏幕上屏幕

通過Ormlitedatabasehelper讀取數據庫中數據,寫入手機屏幕相應的布局當中。

textView1.setText(listview.get(0));

textView2.setText(listview.get(1));

textView3.setText(listview.get(2));

textView4.setText(listview.get(3));

textView5.setText(listview.get(4));

6 驗證

將一臺數控機床(Linux操作系統)接入局域網,設置好登錄名,密碼,以及ip地址。將手機連入該網絡,打開app進行連接,讀取機床參數,并顯示在界面上

7 總結優缺點

優點,可以在任何安卓端獲取設備狀態信息,對設備進行監控,當設備故障報警時,可以及時進行處理,大大提高了設備運行效率。

缺點,實時性有待提高,只能在用戶想要讀取數據的時候去讀取數據,如果要持續對數據進行讀取要建立更長時間的連接,可以應用安卓系統的service組件進行后臺活動,持續讀取設備信息。

在網絡條件不好的情況下會讀取失敗,應該建立更完善的容錯機制。

參考文獻:

[1]BARRETT D J, SILVERMANN R E. SSH, The Secure Shell[M]. Sebastopol, CA:O'Reilly, 2001.

[2]史倩竹. SSH 協議分析與研究.第 15 屆全國計算機新科技與計算機繼續教育學術會議,秦皇 島,2004.

[3]Petersen R Linux技術大全I-M].北京:機械工業出版 社,2002:155~156

主站蜘蛛池模板: 美女免费精品高清毛片在线视| 97人人模人人爽人人喊小说| 国产无遮挡猛进猛出免费软件| 伦精品一区二区三区视频| 99精品国产电影| 亚洲综合色婷婷中文字幕| 在线欧美一区| 乱人伦99久久| 亚洲色中色| 一本久道久综合久久鬼色| 手机永久AV在线播放| 久久这里只有精品8| 国产二级毛片| 国产啪在线| 国产中文一区a级毛片视频| 亚洲第一成人在线| 久久久久亚洲精品无码网站| 男女男精品视频| 黄色网址免费在线| 欧美高清日韩| 国产成人精品免费av| 亚洲综合亚洲国产尤物| 国产xx在线观看| 国产精品白浆在线播放| 欧美69视频在线| 精品少妇人妻无码久久| 欧美中文字幕无线码视频| 亚洲欧美在线综合图区| 国产白浆视频| 91精品国产自产在线老师啪l| 欧美成人一区午夜福利在线| 国产三级韩国三级理| 91精品国产情侣高潮露脸| 国产十八禁在线观看免费| 久久久久中文字幕精品视频| 亚洲国产清纯| 日韩欧美国产区| 午夜影院a级片| 日韩中文字幕亚洲无线码| 久久天天躁夜夜躁狠狠| 丰满的少妇人妻无码区| 欧洲欧美人成免费全部视频| 欧美成人精品一区二区| 国产91无毒不卡在线观看| 在线观看欧美精品二区| 蝴蝶伊人久久中文娱乐网| 亚洲乱码在线视频| 区国产精品搜索视频| 国产99视频精品免费观看9e| 黄色三级网站免费| 九九九久久国产精品| 免费看a级毛片| 欧美成人精品一级在线观看| 狠狠亚洲五月天| 久久人与动人物A级毛片| 中文字幕66页| 蜜臀av性久久久久蜜臀aⅴ麻豆| 成人在线天堂| 91国语视频| 国产乱人免费视频| 2020国产免费久久精品99| 玖玖精品在线| 8090午夜无码专区| 日韩一区二区三免费高清| 日本黄色不卡视频| 欧美日韩免费观看| 无码有码中文字幕| 国产91特黄特色A级毛片| 亚洲精品无码AⅤ片青青在线观看| 国产色婷婷| 色欲色欲久久综合网| 91精品国产情侣高潮露脸| 97一区二区在线播放| 国产精品视频a| 伊人AV天堂| 成人在线观看不卡| 99国产精品免费观看视频| 欧美、日韩、国产综合一区| 国产欧美日韩一区二区视频在线| 久久人搡人人玩人妻精品| 一级成人a毛片免费播放| 欧美成人午夜影院|