日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、使用場景

服務(wù)器端一般都是類Unix系統(tǒng),以linux的centos使用為多,無論使用的是哪種類Unix系統(tǒng),服務(wù)端都不會安裝窗口插件,而是使用命令和腳本來做一切事情,在這樣的場景下,登錄,執(zhí)行命令,執(zhí)行腳本,檢查服務(wù)運行狀態(tài),檢查服務(wù)產(chǎn)生日志,檢查配置這些基本操作就會頻繁的用到,但在命令行模式下操作這些動作很繁瑣。比如檢查某個服務(wù)是否是運行狀態(tài),需要先登錄服務(wù)器,然后在進(jìn)程中再查找該服務(wù)的進(jìn)程是否存在。這里就介紹怎樣通過web端來執(zhí)行服務(wù)器端動作的方法,簡化操作,提升工作效率。

二、選取實現(xiàn)方式

設(shè)計這個實現(xiàn)時比較了兩個實現(xiàn)方式:

1、通過JAVA的Runtime類,執(zhí)行命令和腳本。需要創(chuàng)建和維護(hù)一個工程,在工程里對接口權(quán)限控制也方便,但新加腳本和操作時需要修改工程,重新發(fā)布工程。

2、使用CGI接口,配置便捷,使用靈活,直接在服務(wù)器上寫腳本,通過接口的通用路徑就可以訪問使用,但無法控制接口訪問權(quán)限。

由于這個接口是使用在測試系統(tǒng),方便,靈活是首選,權(quán)限問題就顯示的不那么重要了。

CGI是一個很古老的技術(shù),后來隨著java servlet技術(shù)的興起,在生產(chǎn)場景已經(jīng)沒有CGI的一點空間了,但它的靈活,便捷正好用在測試環(huán)境上。

三、配置CGI接口

3.1、開啟Tomcat的CGI配置

tomcat和Apache等中間件已經(jīng)內(nèi)置了CGI功能,只是默認(rèn)是非啟用狀態(tài)。此處以tomcat為例,配置CGI接口。

修改點1、在Tomcat的 conf/web.xml 中釋放下面CGI相關(guān)的兩段內(nèi)容

第一段:

 

<servlet>

<servlet-name>cgi</servlet-name>

<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>

<init-param>

<param-name>cgiPathPrefix</param-name>

<param-value>WEB-INF/cgi</param-value>

</init-param>

<load-on-startup>5</load-on-startup>

</servlet>

第二段:

 

<servlet-mApping>

<servlet-name>cgi</servlet-name>

<url-pattern>/cgi-bin/*</url-pattern>

</servlet-mapping>

修改點2、在Tomcat的 conf/context.xml 中給標(biāo)簽增加屬性。

在</Context>標(biāo)簽中添加屬性 privileged = "true",因為默認(rèn)情況下Tomcat是不允許web應(yīng)用使用容器內(nèi)的Servlet的,web應(yīng)用只能使用自己項目的Servlet。

3.2、創(chuàng)建一個空項目,定義要執(zhí)行的腳本

tomcat中開啟CGI配置時,沒有修改文件路徑和訪問路徑,那空項目就按照默認(rèn)路徑創(chuàng)建目錄即可。

在tomcat路徑下,直接 mkdir -p webapps/test/WEB-INF/cgi,創(chuàng)建CGI項目目錄完畢。

然后在webapps/test/WEB-INF/cgi路徑下創(chuàng)建一個文件a,a的內(nèi)容如下

 

#!/bin/bash

echo "Content-Type: text/plain"

echo

#上面內(nèi)容是CGI腳本格式,必須存在

 

#下面內(nèi)容是自定義要執(zhí)行的動作

echo "Today is:"

date

3.3、執(zhí)行a的接口訪問路徑

http://localhost:8080/test/cgi-bin/a

四、參數(shù)化cgi接口

4.1、實際場景

此時,CGI接口已經(jīng)配置完畢了,盡管功能已經(jīng)完畢,但還是不滿足實際的使用場景,現(xiàn)在的一個接口只對應(yīng)一個功能,不能復(fù)用。要滿足實際的使用場景,就要參數(shù)化,傳遞的參數(shù)可以是腳本名稱,機(jī)器的ip,服務(wù)名稱,進(jìn)程名稱等等,這樣接口的通用性就大大增加了。

4.2、初步解決方案

若想腳本參數(shù)化就要解決服務(wù)器端的傳參和url中傳參不一致的問題。url中使用“&”和“參數(shù)名=參數(shù)值”的傳參形式,而服務(wù)器端是使用的是空格+直接參數(shù)值得形式。需要在執(zhí)行的a腳本前,先經(jīng)過一個轉(zhuǎn)換腳本,轉(zhuǎn)換腳本需要先切割url,分成幾部分,取出參數(shù)和執(zhí)行的a腳本,再重新拼在一起來執(zhí)行,那就變成url需要先訪問轉(zhuǎn)換腳本,把實際的a腳本和參數(shù)都作為參數(shù)傳進(jìn)來,處理流程變復(fù)雜了。

4.3、網(wǎng)上一個神腳本

直到后來在互聯(lián)網(wǎng)上最終找到了一個完美的解決方案。找到了一個名字叫“proccgi.sh”的腳本,腳本里的注釋中描述是 Frank Pilhofer在1995年寫的。我原封不動的拿過來使用了(腳本下載:鏈接:
https://pan.baidu.com/s/1oZbN13Eog3OKld93f6hEkw?pwd=chen

提取碼:chen)。這個腳本設(shè)計的很巧妙,它不在傳輸中間處理url再拼接,而是把url直接都傳進(jìn)執(zhí)行的a腳本里,然后在a腳本中利用了“eval”命令的的二次掃描功能,掃描出需要的參數(shù),然后把參數(shù)放一個特殊的key-value形式的環(huán)境變量里,使用的時候直接從環(huán)境變量里面去取。

例如:

url:http://localhost:8080/test/cgi-bin/a?ip=115&servername=customer&thread=aabbcc

a腳本改造如下:

#!/bin/bash

 

eval `proccgi.sh $*` # 解析參數(shù)

echo "Content-Type: text/plain"

echo

 

# ############

echo $FORM_ip

echo $FORM_servername

echo $FORM_thread

五、Web頁面處理

有以下幾種情況:

1、對頁面展示無樣式要求的,接口鏈接直接新開瀏覽器窗口,接口返回的數(shù)據(jù)會直接顯示在瀏覽器中。

2、頁面有格式的,需要通過ajax觸發(fā)接口,接口返回值通過innerhtml直接填充到頁面的展示區(qū)域。

3、對于那些耗時較長的任務(wù),接口在還沒有返回值的時候,頁面停留在加載狀態(tài),此時從頁面也無法判斷是否出現(xiàn)未知問題。這時可以給頁面放一個等待的圖片,定義一個標(biāo)志位給它放一個默認(rèn)值,然后js輪訓(xùn)判斷這個標(biāo)志位的值,當(dāng)接口的shell處理完成,接口返回時,要變更標(biāo)志位的值,輪訓(xùn)發(fā)現(xiàn)變更后,就可以把接口返回內(nèi)容替換掉等待圖片全部顯示在頁面上了。

 

六、結(jié)語

在定義環(huán)境的時候,就盡量定義的通用一些,規(guī)律一些。這樣可以維護(hù)一些通用腳本,通過傳入變量參數(shù)來做動作。使在服務(wù)器中環(huán)境維護(hù)和定位問題都不再繁瑣。

分享到:
標(biāo)簽:腳本
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定