1. <i id="s6b2k"><small id="s6b2k"></small></i>
    <b id="s6b2k"><bdo id="s6b2k"></bdo></b>
  2. <wbr id="s6b2k"></wbr>

    Linux shell實現HTTP服務示例代碼

    來源:本網整理

    ll|sed '1d'|awk '{printf$NF"\\n"}'|awk-F"."'{printf$2"\\n"}'|awk-F"_"'{printf$NF"\\n"}'|sort-n|tail-1 得到一個值,然后ll|grep(剛剛得到的值)!www.yu113.com防采集請勿采集本網。

    s">

    Linux shell實現HTTP服務示例代碼

    投稿:daisy 字體:[增加 減小] 類型:轉載 時間:2016-08-25 我要評論 這篇文章介紹的是如何實現一個可以調用shell腳本的HTTP服務,本文給出了詳細的示例代碼,有需要的可以參考借鑒。 ">

    一、前言

    有兩種方法: 假設目標為 10ms: 方法1.sleep 0.01 方法2.usleep 10000(usleep為十的負六次方秒,詳細見man usleep) 推薦閱讀《linux就該這么學》。

    使用代理服務器 HAProxy 對 Mysql 做負載均衡是常用方案,為提高可用性,當某個 Mysql 出現問題時,例如服務器故障了,或者數據復制中斷了,最好可以讓 HAProxy 馬上知道,然后停止向其轉發請求

    實現的功能和上面的一樣 ip route add 172.16.6.0/24 via 172.16.2.254 dev eth0 ip route del gw 172.16.2.254 ip route del 172.16.6.0/24 dev eth0 ip route 刪除的方法: 添加路由: route add-

    HAProxy 如何知道 Mysql 是否有問題呢?

    用shell腳本完成第8題和第9題: bin/sh result=home/testuser/output.txt 第8題 echo-n\"Searching files(*.conf). find/-type f-name\"*.conf\">$result sync echo\"done!第9題 echo-n\"Calculating

    二、解決思路

    使用awk吧:

    (1)編寫一個shell腳本,檢查 mysql 的狀態,然后輸出結果,例如狀態正常時,返回狀態碼200及正確信息,否則返回狀態碼503及錯誤信息

    #!bin/sh FILENAME=file.txt#可換為$1 if!f file.txt];then echo\"$FILENAME no found exit 1 fi echo-n\"INPUT SOME THING: read if!z”$REPLY“];then INFO=$(grep$REPLY FILENAME) if!z\"$INFO\"];

    (2)實現一個HTTP服務,有請求連接后,調用上面的檢查腳本,返回檢查結果

    (3)HAProxy 訪問這個HTTP服務,根據返回的結果信息來判斷這個 mysql 是否可用

    如何方便快速的實現一個可以調用shell腳本的HTTP服務呢?

    比較通用的方案就是 xinetd

    xinetd 是 Linux 的守護進程,全稱為 extended interent daemon,擴展的網絡守護進程

    xinetd 可以打開一個端口,等待連接,你可以告訴 xinetd 運行哪個腳本,當有連接進來后,xinetd 便會執行腳本,然后直接返回腳本輸出的內容

    HAProxy -> xinetd -> mysql-check腳本,HAProxy 便取得了mysql的狀態信息

    xinetd 的配置案例

    下面實現一個簡單的 xinetd 示例,開放 9200 端口,返回一個測試腳本的輸出內容

    如果機器上還沒有 xinetd,先安裝一下,centos7 下可以使用命令 yum install xinetd

    (1)測試腳本

    #!/bin/bashecho `uptime | egrep -o 'up ([0-9]+) days' | awk '{print $2}'`

    這個腳本用來輸出當前服務器的在線天數

    chmod +x 給腳本添加可執行權限

    (2)編寫 xinetd 服務

    例如服務名為 helloworld,文件名 /etc/xinetd.d/helloworld,內容為

    service helloworld{disable = noport = 9200socket_type = streamprotocol = tcpwait = nouser = rootserver = /root/test.shserver_args = test}

    port 指定監聽的端口

    server 指定要執行的腳本

    (3)加入服務列表

    修改 /etc/services

    找到定義 9200 端口的位置,注釋掉原有的,添加 helloworld 服務

    helloworld 9200/tcp#wap-wsp 9200/tcp#wap-wsp 9200/udp

    (4)重啟 xinetd

    centos 下的重啟命令為:

    systemctl restart xinetd.service

    (5)測試

    分別用 nc telnet 兩個命令測試一下

    nc localhost 9200

    telnet localhost 9200

    可以正確輸出腳本執行內容,完成示例

    總結

    Linux shell實現HTTP服務的內容到這就基本結束了,希望對大家的工作和學習能有所幫助,如果有疑問可以留言討論。

    有兩種方法:假設目標為 10ms:方法1.sleep 0.01方法2.usleep 10000(usleep為十的負六次方秒,詳細見man usleep)內容來自www.yu113.com請勿采集。

    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.yu113.com All Rights Reserved
    战天txt全集下载