




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 基于安卓平臺(tái)的遠(yuǎn)程監(jiān)控linux系統(tǒng)設(shè)備設(shè)計(jì) 孫仲揚(yáng)摘要:越來(lái)越多的設(shè)備使用linux作為操作系統(tǒng),為了實(shí)現(xiàn)對(duì)設(shè)備的遠(yuǎn)程監(jiān)控與診斷,一般都將設(shè)備接入互聯(lián)網(wǎng)(或者局域網(wǎng)),再由一臺(tái)電腦接入該網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程登錄,達(dá)到數(shù)據(jù)交換,傳輸?shù)哪康?。如今,安卓手機(jī)已經(jīng)相當(dāng)普及,由于操作手機(jī)的便捷性,人們操作電腦的時(shí)間越來(lái)越少,使用手機(jī)越來(lái)越多,本設(shè)計(jì)基于安卓系統(tǒng)平臺(tái),實(shí)現(xiàn)對(duì)linux系統(tǒng)設(shè)備進(jìn)行遠(yuǎn)程監(jiān)控,及時(shí)發(fā)現(xiàn)設(shè)備問(wèn)題,便于設(shè)備使用人員及管理人員使用,并且對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),并且有利于之后對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步分析挖掘。關(guān)鍵詞:遠(yuǎn)程登錄;遠(yuǎn)程監(jiān)控;linux系統(tǒng)設(shè)備
2、中圖分類(lèi)號(hào):tp277 文獻(xiàn)標(biāo)識(shí)碼:a 文章編號(hào):1672-9129(2020)16-0038-02方案設(shè)計(jì)與實(shí)現(xiàn):1 ssh 遠(yuǎn)程登錄1.1 ssh簡(jiǎn)介。ssh1 (secure shell,安全協(xié)議外殼)是由 ietf ( internet engineering task force,國(guó)際 互聯(lián)網(wǎng)工程任務(wù)組)制定的一族協(xié)議,提供安全遠(yuǎn)程登錄、安全文件傳輸?shù)染W(wǎng)絡(luò)服務(wù)功 能,還可以為其它應(yīng)用層協(xié)議提供安全“通道”。ssh 對(duì)服務(wù)端和客戶(hù)端提供相互的 身份驗(yàn)證功能,并且保證傳輸數(shù)據(jù)的加密性和完整性。使用 ssh 還有一個(gè)額外的優(yōu)點(diǎn):它會(huì)壓縮傳輸?shù)?/p>
3、數(shù)據(jù),縮短傳輸所需的時(shí)間。ssh 協(xié)議的軟件程序由客戶(hù)端和服務(wù)器兩部分組成,以網(wǎng)絡(luò)應(yīng)用層和傳輸層為基礎(chǔ) 2。1.2 ssh驗(yàn)證。從客戶(hù)端來(lái)看,ssh提供兩種級(jí)別的安全驗(yàn)證。第一種級(jí)別(基于口令的安全驗(yàn)證)只要你知道自己帳號(hào)和口令,就可以登錄到遠(yuǎn)程主機(jī)。所有傳輸?shù)臄?shù)據(jù)都會(huì)被加密,但是不能保證你正在連接的服務(wù)器就是你想連接的服務(wù)器3??赡軙?huì)有別的服務(wù)器在冒充真正的服務(wù)器,也就是受到“中間人”這種方式的攻擊。第二種級(jí)別(基于密匙的安全驗(yàn)證)需要依靠密匙,也就是你必須為自己創(chuàng)建一對(duì)密匙,并把公用密匙放在需要訪問(wèn)的服務(wù)器上。如果你要連接到ssh服務(wù)器上,客戶(hù)端軟件就會(huì)向服務(wù)器發(fā)出請(qǐng)求,請(qǐng)求用你的密匙進(jìn)行
4、安全驗(yàn)證。服務(wù)器收到請(qǐng)求之后,先在該服務(wù)器上你的主目錄下尋找你的公用密匙,然后把它和你發(fā)送過(guò)來(lái)的公用密匙進(jìn)行比較。如果兩個(gè)密匙一致,服務(wù)器就用公用密匙加密“質(zhì)詢(xún)”(challenge)并把它發(fā)送給客戶(hù)端軟件??蛻?hù)端軟件收到“質(zhì)詢(xún)”之后就可以用你的私人密匙解密再把它發(fā)送給服務(wù)器。用這種方式,你必須知道自己密匙的口令。但是,與第一種級(jí)別相比,第二種級(jí)別不需要在網(wǎng)絡(luò)上傳送口令。綜上所述,選用安全的ssh協(xié)議來(lái)登錄linux設(shè)備。驗(yàn)證方式由于驗(yàn)證的數(shù)控機(jī)床只支持賬號(hào)和口令的方式,所以選用第一種方式。1.3 ssh庫(kù)選用。在本項(xiàng)目中引入jsch庫(kù),jsch 是一個(gè)基于ssh的java庫(kù),可以支持安卓設(shè)備
5、用于ssh登錄以及文件傳輸,shell腳本操作,由于android基于java語(yǔ)言進(jìn)行開(kāi)發(fā),所以可以以導(dǎo)入jar包的方式導(dǎo)入jsch庫(kù)。1.4異步任務(wù)庫(kù)選用。此外,還有一個(gè)很重要的庫(kù)。rx(reactivex,響應(yīng)式編程)是一種事件驅(qū)動(dòng)的基于異步數(shù)據(jù)流的編程模式,整個(gè)數(shù)據(jù)流就像一條河流,它可以被觀測(cè)(監(jiān)聽(tīng)),過(guò)濾,操控或者與其他數(shù)據(jù)流合并為一條新的數(shù)據(jù)流。而rxjava是.net rx在jvm上的實(shí)現(xiàn)。rxjava可以應(yīng)用于大部分基于jvm的語(yǔ)言,如scala,groovy等。rxjava引入,用于異步任務(wù)操作,并且可以在主線(xiàn)程子線(xiàn)程中切換,因?yàn)檫B接,傳輸文件屬于耗時(shí)操作,不能夠在主線(xiàn)程中進(jìn)行
6、,rxjava還帶有錯(cuò)誤處理機(jī)制,在連接錯(cuò)誤的時(shí)候可以進(jìn)行處理。rxjava特點(diǎn)·函數(shù)響應(yīng)式編程·異步·事件驅(qū)動(dòng)的·基于觀察者模式·專(zhuān)門(mén)的出錯(cuò)處理,當(dāng)使用rxjava出現(xiàn)錯(cuò)誤時(shí),它不會(huì)直接拋出異常,而是會(huì)執(zhí)行onerror()方法;·并發(fā),可以很容易實(shí)現(xiàn)多線(xiàn)程1.5建立連接。private void initpingcncdata(final string ip, final string password, final callbackcontext callbackcontext)observable.create(new obs
7、ervable.onsubscribe() overridepublic void call(subscriber subscriber) /1.ping device,檢測(cè)對(duì)方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) c
8、allbackcontext.error("connectfalse"); else subscriber.onnext("device connected");/建立連接完成,可讀取數(shù)據(jù)getfilesinfo (session);subscriber.oncompleted(); catch (jschexception e) e.printstacktrace();).subscribeon(schedulers.io().timeout(20, timeunit.seconds).observeon(androidschedulers.maint
9、hread().subscribe(new subscriber() overridepublic void onerror(throwable throwable) callbackcontext.error("connectfalse");overridepublic void onnext(string str) /連接成功,接下來(lái)的工作在這里進(jìn)行);2 scp讀取文件scp是secure copy的縮寫(xiě),是用來(lái)進(jìn)行遠(yuǎn)程文件拷貝的。數(shù)據(jù)傳輸使用 ssh,并且和ssh 使用相同的認(rèn)證方式,提供相同的安全保證。scp命令是 ssh 中最方便有用的命令了,試想,在兩臺(tái)服務(wù)器
10、之間直接傳送文件,僅僅用 scp 一個(gè)命令就完全解決了。你可以在一臺(tái)服務(wù)器上以 root 身份運(yùn)行 #scp servername:/home/ftp/pub/file1 ./ 這樣就把另一臺(tái)服務(wù)器上的文件 /home/ftp/pub/file1 直接傳到本機(jī)器的當(dāng)前目錄下,當(dāng)然你也可以用 #scp /tmp/file2 servername:/boot 把本機(jī)上的文件 /tmp/file2 送到另一臺(tái)機(jī)器的 /boot 目錄下。而且整個(gè)傳送過(guò)程仍然是用 ssh 加密的private int getfilesinfo(string filefullpath, session session)
11、int res = -1;string arg = new string2;arg0 = filefullpath;arg1 = cordova.getactivity().getfilesdir() + file.separator + temp;int count = 3;do res = scpfrom.scpfrom(arg, session);count-; while (res != 0 && count != 0);return res;3 安卓設(shè)備讀取xml文件并解析可擴(kuò)展標(biāo)記語(yǔ)言,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集,是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言。在電子計(jì)
12、算機(jī)中,標(biāo)記指計(jì)算機(jī)所能理解的信息符號(hào),通過(guò)此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種的信息比如文章等。它可以用來(lái)標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類(lèi)型,是一種允許用戶(hù)對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。它非常適合萬(wàn)維網(wǎng)傳輸,提供統(tǒng)一的方法來(lái)描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。是internet環(huán)境中跨平臺(tái)的、依賴(lài)于內(nèi)容的技術(shù),也是當(dāng)今處理分布式結(jié)構(gòu)信息的有效工具。早在1998年,w3c就發(fā)布了xml1.0規(guī)范,使用它來(lái)簡(jiǎn)化internet的文檔信息傳輸。pull解析xml:xml pull提供了開(kāi)始元素和結(jié)束元素,當(dāng)某個(gè)元素開(kāi)始時(shí),我們可以調(diào)用parser.nexttext從xml文檔中提取所有字符數(shù)據(jù)。
13、當(dāng)解釋到一個(gè)文檔結(jié)束時(shí),自動(dòng)生成enddocument常用接口類(lèi):xmlpullparser, xmlsreializer, xmlpullparserfactory特點(diǎn)是代碼實(shí)現(xiàn)較為簡(jiǎn)單,非常適合移動(dòng)設(shè)備,安卓系統(tǒng)內(nèi)置pull解析器,而且安卓系統(tǒng)內(nèi)部默認(rèn)使用pull來(lái)解析xml文件case xmlpullparser.start_tag:if (parser.getname().equals("name") string temp = parser.nexttext();if (temp.contains("sinumerik") res += &qu
14、ot;"name":"" + temp + ""," else if (parser.getname().equals("mlfb") res += ""mlfb":"" + parser.nexttext()+ "","else if (parser.getname().equals("serialno") res += ""serialno":"" +
15、parser.nexttext()+ "","else if (parser.getname().equals("hw-id") res += ""hwid":"" + parser.nexttext()+ "","finishflag = false;break;case xmlpullparser.end_tag:break;4 將解析出來(lái)的信息存入安卓本地sqlite數(shù)據(jù)庫(kù)sqlite是一款輕型的數(shù)據(jù)庫(kù),是遵守acid的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它包含在一個(gè)相對(duì)小
16、的c庫(kù)中。它是d.richardhipp建立的公有領(lǐng)域項(xiàng)目。它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百k的內(nèi)存就夠了。它能夠支持windows/linux/unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如 tcl、c#、php、java等,還有odbc接口,同樣比起mysql、postgresql這兩款開(kāi)源的世界著名數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)講,它的處理速度比他們都快。sqlite第一個(gè)alpha版本誕生于2000年5月。安卓系統(tǒng)中使用的就是sqlite數(shù)據(jù)庫(kù)。在本系統(tǒng)中應(yīng)用對(duì)sqlite進(jìn)行封裝后的ormlite框架
17、。ormlite是一個(gè)數(shù)據(jù)庫(kù)操作輔助的開(kāi)源框架,底層還是sqlite。o-r-m是object relational mapping(對(duì)象關(guān)系映射)的縮寫(xiě),即業(yè)務(wù)實(shí)體對(duì)象與關(guān)系型數(shù)據(jù)庫(kù)之間的映射。對(duì)象中的屬性與數(shù)據(jù)庫(kù)表中的字段一一對(duì)應(yīng)。ormlite直接操作業(yè)務(wù)對(duì)象,隱藏了數(shù)據(jù)庫(kù)操作的細(xì)節(jié),使我們不用通過(guò)sql語(yǔ)句與數(shù)據(jù)庫(kù)打交道。ormlite通過(guò)java注解的方式與數(shù)據(jù)庫(kù)建立映射關(guān)系。建立javabean文件,用來(lái)映射數(shù)據(jù)表中數(shù)據(jù),建立ormlitedatabasehelper建立java與sqlite數(shù)據(jù)庫(kù)之間的關(guān)系,將解析出來(lái)的xml數(shù)據(jù)存入數(shù)據(jù)庫(kù)中。public void update
18、param(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 讀取數(shù)據(jù)庫(kù)信息并顯示在手機(jī)屏幕上屏幕通過(guò)ormlitedatabasehelper讀取數(shù)據(jù)庫(kù)中數(shù)據(jù),寫(xiě)入手機(jī)屏幕相應(yīng)的布局當(dāng)中。textview1.settext(listview.get(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能制造企業(yè)生產(chǎn)管理人才招聘與智能制造協(xié)議
- 二零二五年度立體停車(chē)設(shè)備研發(fā)與委托運(yùn)營(yíng)管理合同
- 二零二五年度航空航天就業(yè)勞動(dòng)合同
- 二零二五年度叉車(chē)安全風(fēng)險(xiǎn)評(píng)估與整改合同
- 圍城深度解讀與評(píng)析征文
- 新產(chǎn)品市場(chǎng)推廣策略及執(zhí)行方案
- 工業(yè)自動(dòng)化控制系統(tǒng)設(shè)計(jì)與維護(hù)服務(wù)協(xié)議
- 《天文觀測(cè)與天體物理學(xué)習(xí)計(jì)劃》
- 行業(yè)市場(chǎng)深度調(diào)研分析
- 互聯(lián)網(wǎng)+三農(nóng)營(yíng)銷(xiāo)模式創(chuàng)新案例集
- 2025年黑龍江農(nóng)墾職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)完整
- 2025年黑龍江旅游職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)附答案
- 《多彩的節(jié)日民俗》(教學(xué)設(shè)計(jì))浙教版四年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)
- 2025年健康咨詢(xún)管理服務(wù)合同范文
- 光學(xué)鏡片透光率測(cè)量基準(zhǔn)
- 歷史-貴州省貴陽(yáng)市2025年高三年級(jí)適應(yīng)性考試(一)(貴陽(yáng)一模)試題和答案
- 2025年01月2025全國(guó)婦聯(lián)所屬在京事業(yè)單位公開(kāi)招聘93人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 輻射安全管理測(cè)試題含答案
- 2025年北京社會(huì)管理職業(yè)學(xué)院高職單招高職單招英語(yǔ)2016-2024年參考題庫(kù)含答案解析
- 信息系統(tǒng)項(xiàng)目計(jì)劃書(shū)
- 2025學(xué)生管理工作計(jì)劃怎么寫(xiě)
評(píng)論
0/150
提交評(píng)論