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

基于Python的遠程自動化程序發布系統

2022-06-24 07:38:18尤海娟張亮桂康哲黃麗花
電子制作 2022年10期
關鍵詞:程序方法系統

尤海娟,張亮,桂康哲,黃麗花

(上汽通用五菱汽車股份有限公司 廣西汽車新四化重點實驗室,廣西柳州,545000)

0 前言

從軟件和信息技術服務業在我國落根開始,發展力度一直在加大,穩中有進,無論是收入還是利潤增速,都一直在穩定提升,我國在信息技術行業從業人數也一直在穩定增加。我國的信息技術軟件遍地開花,無論是云服務、大數據服務、網絡安全服務還是傳統的工業軟件、網上電商平臺技術服務,跟我國國民的日常生活息息相關。軟件行業在我國有很好的發展潛力,擁有美好的前景。

Java進入我國也就十幾年的時間,跟隨著我國軟件行業經濟的穩定快速發展,Java在我國的信息技術行業里越發普及,也變得越發舉足輕重。基于Java編程語言開發的計算機軟件很多,因此Java為人們所重視,被廣泛應用在計算機軟件的開發上,是和我們息息相關的互聯網信息技術,越來越廣泛地深入到人們生活的方方面面[1]。

Java 技術具有四大優越的特性,集成了卓越的普遍通用性、性能高效性、高可移植性和高度安全性,可以廣泛應用于多種方向,如科學超級計算機、數據中心、移動手機端和互聯網等等[2]。Java方向良多,其中的Java EE方向,名為企業級項目開發,可做多種領域,包括但不限于互聯網,物流,電力行業,電子商務,證券,大型銀行應用,生產制造等等ERP管理軟件和其他規模不小的網站和后臺的開發應用上[4]。

當開發大型系統應用時,是很難一次就寫對代碼運行成功沒有錯誤的,往往需要經過測試和許多次的改造才能實現目的,因此也很難一次程序發布完后就當甩手掌柜,常常需要多次的程序發布。假若使用人工發布,將會大大浪費資源。

基于python 開發的Java程序自動化遠程發布系統可以會大大減少資源的浪費。

Python是個輕量級的高級程序語言,誕生于1990 年代初,生父為荷蘭數學和計算機科學研究學會的Guido van Rossum,初衷是作為ABC語言的替代品。雖然Python易學好懂,但可謂“麻雀雖小,五臟俱全”,Python內置了高效的高級數據結構,可高效地實現面向對象編程[5]。Python的本質是解釋型語言,他那言簡意賅的語法和動態類型,它成為了大多數開發者快速開發應用會最先想到的高級編程程序語言,它是開源的,所以版本會不斷更新,不斷添加新功能新特性,可勝任那些獨立的、大型的項目開發。

Python解釋器基于易擴展性,有需要時,可以使用C語言或C++語言,擴展Python新功能和數據類型[6]。 Python標準庫繁多,有適合于各種主要系統平臺的源碼或機器碼,這使Python 也可應用于可定制化系統中的擴展程序語言[7]。Python易學易懂,未來很有可能要跟數學、物理等理科、工科學科進行結合,成為孩子們必須學習的一門課程,也是培養他們能力的核心科目,相信以后Python在中國會越來越流行,這些都將極大地增強Python語言的軟實力。

1 開發語言的選用

因為Java程序遠程自動化發布系統的規模較小,是個人開發,需要在經濟上,規模上,功能支持上來綜合考慮。Python開源免費,不需要付出過多的金錢就可以達到目的,另外Python的輕量、功能支持多和社區解答氛圍的活躍,使得個人開發的阻力也極低。此外,Python有許多可以使用的開源工具,這些能夠極大地減少時間的消耗,讓開發人員能夠更容易地集中精力用于理順程序邏輯,而不需要用太多的額外力氣解決細微末節,因此,綜合考慮下來,采用Python程序語言用來開發遠程自動化發布系統很合適,很順手。

2 Java程序發布的步驟

在開發Java程序遠程自動化發布系統前,首先要了解Java程序發布的步驟和順序,這將會成為即將開發的Java程序遠程自動化發布系統的程序內部邏輯支持,Java程序的發布步驟邏輯不難,十分的簡單。理順程序邏輯我們就很容易就開發出程序了,下面介紹的是Java程序發布的步驟,統共分為六個部分,這六個部分分別如下:

第一步:需要準備好即將發布的Java軟件項目,包括已經完成并調試過的整套項目文件,其中包括但不限于代碼文件、數據庫文件、圖片資源、網頁文件和文本文件,軟件項目環境部署的工具。軟件項目可大可小,本次開發的程序發布輔助小工具都會適用。

第二步:需要自行購買云服務器(ECS),這可選擇的選項很多,云服務器相當于不在本地,掛在云端的計算機。云服務器廠商有很多,建議選擇大公司的廠商,這樣子會比較穩定。穩定性可以解決很多麻煩,不用分心,享受友好的服務的同時,也能更好地分配更多的時間用于開發和思考。

第三步:購買云服務器資源后,需要獲取廠商提供的云服務器的一系列信息,這些信息都很重要,需要記住,獲取后需要用這些信息遠程連接云服務器,遠程登錄連接云服務器以后再在服務器上配置程序運行環境,包括但不限于Java環境、tomcat環境和數據庫環境。

第四步:將本地開發好的Java軟件項目部署進云服務器內。將各個文件放入服務器響應的路徑,這一步可以按以往的經驗一樣布置,也可以在這個部分就開始使用小工具進行部署。

第五步:部署好軟件項目到云服務器以后,就可以在云服務器上運行本次的Java項目了,可以根據“http://ip:端口號/項目路徑”這個格式來配置URL,在本地訪問該部署到云服務器的軟件項目。本地訪問可以采用瀏覽器輸入URL的方式進行訪問,像以前訪問別的網頁一樣就行。

第六步:需要購買域名,讓網站可以根據域名的方式來訪問,而不必使用云服務器ip來訪問項目。域名的購買十分的簡單,購買域名成功后需要解析域名了,即把購買的域名和購買的云服務器ip掛靠起來,將域名映射到訪問地址。域名解析之后,通過外網還是暫時不能以域名的方式訪問項目,原因可能出于映射的請求不穩定、需要備案或者還在等待審核。這些可能都要耗費一些時間和精力。

基于Python的Java遠程程序自動化發布系統旨在解決Java程序發布的第四步的痛點,即雖然將程序傳到服務器看起來很簡單,但是,文件良多,程序的維護和修正工作要一直進行的,而且每次可能只修改很小的一部分,不會每次都將一整個項目文件都進行更新,所以,需要一直傳最新更新的個別文件到云服務上,如果單純人工做手動發布,一次兩次無礙,當次數多了,文件多了,對人力資源來說將會面臨大量的浪費。這些會增加用人成本和時間。

基于Python的Java遠程程序自動化發布系統會很好解決這些問題。

3 程序分析和程序實現

■ 3.1 基于python的遠程自動化發布系統邏輯

理順了程序邏輯以后,我們會發現基于python的遠程自動化發布系統邏輯非常簡單。大體總結如下:

總體的大概就是連接云服務器,當有文件更新時,根據要上傳的文件類型將文件上傳至云服務器的相應位置,并根據情況處理一些額外的事件,返回處理結果。

具體程序邏輯內容詳細描述如下:

(1)設定云服務器的ip,端口,賬號,密碼。這將用來連接云服務器。

(2)當有文件更新時,選擇需要上傳的文件準備上傳。

(3)如果要上傳的文件是class文件,需要檢測該class文件在云服務器的Java項目中是新增還是需要更換。當是需要新增時,將相應jar文件進行備份,再用ftp協議將該class文件上傳到相應的jar文件位置即可。但如果是要更換時,程序需要檢查云服務器的該class文件在云服務器上,同名class文件所在的jar包位置和class文件在jar包里的路徑,可能檢測到多個jar包里包含了同名文件,也可能檢測到單個jar包里有多個同名class文件。這時要選擇哪個路徑的class文件才是真正要替換的,對相應的jar包進行自動備份,再替換class文件。可能整個項目中只有一個同名class文件,這時程序會自動備份跟替換。

(4)當文件是其他類型時,如html文件,css文件,圖片資源文件等,也是差不多的處理方法。自動備份和替換。新增時是直接插入。

(5)對服務器返回的結果進行分析。處理一些另外的事情,如是否要對該軟件項目進行全部編譯等,如是否要刪除一些文件等。

■ 3.2 基于python的遠程自動化發布系統的實現

配置完服務器ip、端口、賬號、密碼后,使用Python的paramiko遠程登陸服務器,paramiko屬于第三方庫,可以通過“pip3 install paramiko”在本地安裝上這個模塊,paramiko包含兩個核心組件:SSHClient和SFTPClient,SSHClient和SFTPClinet,即一個是遠程連接,一個是上傳下載服務。

SSHClient的類似于Linux的ssh命令,是對SSH會話的封裝,它封裝了傳輸,通道及SFTPClient建立的方式,用于執行遠程命令。常用方法有connect()方法,用來實現遠程服務器的連接與認證。用exec_command()方法在遠程服務器執行Linux命令的方法。open_sftp()方法作用是在當前ssh會話的基礎上創建一個sftp會話,該方法會返回一個SFTPClient對象。load_system_host_keys方法加載指定遠程主機的公鑰文件。

SFTPClient類似于Linux的sftp命令,是對SFTP客戶端的封裝,可以實現遠程文件操作,比如文件上傳、下載、修改文件權限等操作。

Paramiko是個遵循SSH2協議,支持以加密和認證的方式遠程連接到服務器,它支持Linux, Solaris, BSD, MacOS X, Windows等平臺通過SSH從一個平臺連接到另外一個平臺,是用python寫的一個模塊工具,可以查看服務器的日志,可以批量配置遠程服務器,文件上傳,文件下載等,使用Paramiko,我們可以直接使用SSH協議對遠程服務器執行操作,而不是通過ssh命令對遠程服務器進行操作,它封裝了很多常用方法,足夠我們使用了。

不完全代碼如下:

然后判斷文件類型,文件類型有許多種,有jsp文件、js文件、txt文件、html文件、xml文件等等,但處理邏輯大抵相同,根據文件類型做相應的處理,我們使用的服務器系統一般都是Linux,Linux 是一種自由和開放源碼的類 UNIX 操作系統,任何個人和機構都可以自由地使用 Linux 的所有底層源代碼,也可以自由地修改和再發布。正因為Linux系統的高效、免費和自由,Linux是除了Windows操作系統之外最流行的操作系統,在Linux系統中操作,需要了解一些Linux知識,Linux的命令很多,我們掌握一些常用的Linux命令就行了,學習成本并不是很大,比如上傳文件的時候可以使用put方法將我們的文件上傳到相應的路徑當中,我們要下載的時候,可以使用get方法獲取服務器上相應路徑之下的我們想要的文件,還有其他的一些我們需要學會的Linux常用的辦法如下:

mkdir方法:可以用于創建目錄。

remove方法:可以用于刪除目錄。

rename方法:可以用于重命名。

stat方法:可以用于獲取文件信息。

ps方法:可以用于查看Linux系統的進程狀態。

chown方法: 可以用于修改所屬用戶與組。

chmod方法 : 可以用于修改用戶的權限。

ls或者ll方法:可以用于獲取目錄列表。

當我們想要使用paramiko模塊操作服務器上文件時,可以先用Linux常用命令構造好cmd語句,再用exec_command方法在遠程服務器中執行我們構造好的cmd語句,exec_command方法執行完以后會將元組(stdin,stdout,stderr)作為paramiko.ChanelFile對象返回,我們獲取這個元祖,就可以知道在遠程服務器當中我們發出的遠程命令是否執行成功,再以此為依據決定我們是否要進一步修正我們的代碼。

在python當中,time() 方法可以返回當前時間的時間戳。利用time.time()方法,我們可以計算兩個時間點之間的間隔,使用time.strftime()方法可以讓我們獲取的時間更易讀。這個方法可以讓我們發現是否網絡存在延遲等等,在寫代碼的時候可以用上。

我們使用的不完全代碼如下:

4 結論

基于python的遠程自動化發布系統是Java項目開發的好工具,使用得當會在Java程序在系統實現的應用中均取得了顯著的效果。有這個工具,將會減少人為發布程序的時間和成本,是個很好的節約成本的小工具。安裝使用第三方庫paramiko,可以很容易實現我們所需要的功能。

猜你喜歡
程序方法系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 成人噜噜噜视频在线观看| 国产综合日韩另类一区二区| 四虎永久免费地址| 亚洲三级成人| 美女视频黄又黄又免费高清| 午夜免费小视频| 夜夜爽免费视频| 这里只有精品国产| 亚洲中文字幕精品| 亚洲精品国偷自产在线91正片| 视频国产精品丝袜第一页| 国产va欧美va在线观看| 波多野结衣一区二区三区AV| 自慰网址在线观看| 亚洲无码视频一区二区三区| 一级毛片免费不卡在线| 亚洲人成网站18禁动漫无码| 亚洲视频四区| 91精品国产综合久久不国产大片| 国产成人91精品| 亚洲精品老司机| 日韩福利视频导航| 欧美日韩成人在线观看 | 欧美日韩中文字幕二区三区| 无码啪啪精品天堂浪潮av| 欧美成人精品高清在线下载| 国产精品爽爽va在线无码观看| 天堂av综合网| 亚洲欧美精品在线| 天天综合网色中文字幕| 国产乱子伦精品视频| 福利在线不卡| 日本亚洲欧美在线| 久久免费视频6| 亚洲国产亚综合在线区| 看国产毛片| 日韩精品久久无码中文字幕色欲| AV网站中文| 亚洲国模精品一区| 中文字幕永久视频| 国产精品成人免费综合| 丁香六月激情婷婷| 深夜福利视频一区二区| 少妇精品网站| 日韩在线视频网| a色毛片免费视频| 免费在线播放毛片| 国产午夜小视频| 国产真实乱子伦视频播放| 亚洲品质国产精品无码| 思思99热精品在线| 成AV人片一区二区三区久久| 亚洲第一精品福利| 老司机午夜精品视频你懂的| 国产亚洲欧美日韩在线一区| 日韩福利在线观看| 成人午夜在线播放| 欧美a在线| 中文无码日韩精品| 97视频精品全国在线观看| 91蝌蚪视频在线观看| 久久国语对白| 六月婷婷精品视频在线观看| 精品五夜婷香蕉国产线看观看| 伊人久久久久久久久久| 国产成a人片在线播放| 亚洲成a人片77777在线播放| 免费无遮挡AV| 99国产精品国产| a网站在线观看| 欧美中文字幕无线码视频| 欧美日本视频在线观看| 毛片一区二区在线看| 免费在线a视频| 人妻丰满熟妇av五码区| 青青青视频免费一区二区| 免费毛片在线| 国产综合另类小说色区色噜噜| 国产十八禁在线观看免费| 日本午夜在线视频| 亚洲视频在线观看免费视频| 最新国产你懂的在线网址|