1. 程式人生 > >使用nc命令監聽埠編寫git的web hooks

使用nc命令監聽埠編寫git的web hooks

需求:
git 伺服器可以配置 web hooks
希望git伺服器能在提交程式碼後通知開發機更新程式碼

解決方案:
1.使用nc命令監聽5001埠(service.sh)
2.當nc命令接收到請求後, 資料使用管道傳給run.php進行處理
3.因為web hooks是http協議請求, run.php解析出path, 然後分類處理

service.sh

#/bin/bash

dir=`dirname $0`
while(( 1 ))
do
     nc -l 5001 -w 1|${dir}/run.php >> ${dir}/q.log; done

run.php


 #!/usr/local/php/bin/php
<?php //配置 $arr_conf = [ '/tmall-static' => '/opt/web/t1.sjbly.cn/tmall-static/test_install.sh 2>&1 > /dev/null', ]; //讀取資料 $fp = fopen('php://stdin', 'r'); if (!$fp) { echo 'exit'; exit; } $str = fgets($fp, 1024); fclose($fp); //處理資料 echo date('[Y-m-d H:i:s]'), $str
; $arr = explode(' ', $str, 3); if (empty($arr[1])) { exit; } $k = $arr[1]; if (isset($arr_conf[$k])) { `{$arr_conf[$k]}`; echo date('[Y-m-d H:i:s]'), $k, "\n"; }

執行

./service.sh &

相關推薦

使用nc命令編寫git的web hooks

需求: git 伺服器可以配置 web hooks 希望git伺服器能在提交程式碼後通知開發機更新程式碼 解決方案: 1.使用nc命令監聽5001埠(service.sh) 2.當nc命令接收到請求後, 資料使用管道傳給run.php進行處理 3.因

使用UDP協議編寫一個網路程式,設定接收端程式的是8001,傳送端傳送的資料是“Hello, world”

import java.net.*; public class UdpC { public static void main(String[] args) throws Excepti

Oracle資料庫

問題描述: Oracle資料庫安裝完成之後,在其他機器無法遠端訪問該資料庫。 解決方法: 1.確保網路和防火牆開通(防火牆開通1521埠) 2.檢視1521埠是否啟用 netstat -n|grep 1521 如果命令執行結果中,沒有1521,說明該埠監聽沒

php-fpm 啟動後沒有9000

netstat -an未發現監聽9000埠。檢視/var/log/php5-fpm.log一切正常。 隨後檢視centos/usr/local/php/etc/php-fpm.con (ubuntu:/etc/php5/fpm/pool.d/www.conf,) 發現li

Windows8 Metro介面下的StreamSocketListener物件做

StreamSocketListener 是一個很方便的伺服器監聽物件,利用它我們可以很簡單的實現對伺服器埠的監聽。使用StreamSocketListener物件進行監聽需要以下幾步: 1. 例項化一個StreamSocketListener物件 2. 註冊例項收到連線時的事件 3.

Linux C

int socket(int domain,int type,int protocol); domain引數指定協議族 type引數指定這個套接字的通訊型別 protocol引數指定使用的協議 AF_UNIX         UNIX域協議

centos6.8 修改php-fpm的

主要是修改php-fpm的監聽埠,然後修改nginx的配置,對應php-fpm的監聽埠。 修改 /etc/php-fpm.d/www.conf 檔案,將監聽的 listen = 127.0.0.1:9000 改成 listen = 127.0.0.1:8999 serv

自己動手寫servlet容器 2.2: 接收請求

監聽埠接收請求 上一步中我們已經定義好了Server介面,並進行了多次重構,但是實際上那個Server是沒啥毛用的東西。現在要為其新增真正有用的功能。大師說了,飯要一口一口吃,衣服要一件一件脫,那麼首先來定個小目標——啟動ServerSocket監聽請求,不要什麼多執行緒不

【驗證】nodejs單執行緒理解:一個nodejs開兩個,執行時是否是兩個執行緒?

一個nodejs開兩個監聽埠,執行時是否是兩個執行緒?因為剛接觸nodejs不久,以上問題,困惑了我很久,一直想不明白。既然想不明白就直接上程式碼驗證一下,看結果是什麼樣。var express1 = require('express'); var express2 = re

flume-NG採用syslogtcp方式

一、採集說明 本採集方式使用socket通訊的方式,向flume傳送資料進行採集,採集後的資料儲存到hdfs和kafka。 二、配置檔案 1、source採集層 port.properties # set agent name agent.

修改WMB執行組

注:僅適用於修改HTTP監聽埠,HTTPS、SOAP並沒有修改 預設情況下MB的監聽級別是代理監聽級別,一個代理只監聽一個埠號,執行組中的訊息流通過具體的url來訪問。 如果你想監聽多個埠除了建立多個代理這種方法外還可以選擇為每個執行組指定監聽的埠,更節省資源。 1.檢視目

oracle修改號(1521)

修改oracle監聽埠1,檢視當前監聽狀態[[email protected] ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 05-JUL-2018 14:26:26

React Native 切換(紅屏:Unable to load from asset 'index & packager 卡在graph, done.)

開開心心開始編譯執行,結果一個大紅屏。。。 轉頭也發現我們的packager卡在了Loading dependency graph, done. 上網搜尋,發現,我不是一個人。但是按照很多同仁的法子,我掉到了另一個坑。 也許你也看到很多同仁告訴你,你可以去這樣做: 1、建

tomcat7 改為 80 linux Debian

 第一步: 在 配置檔案/etc/tomcat7/server.xml 中將 port =8080 改為 port =80 重啟 tomcat7,仍然無法在瀏覽器中訪問 localhost    開啟 日誌檔案  /var/log/tomcat7/catalina.out 

xampp配置多個和不同的網站目錄

1.配置Apache檔案httpd.conf 開啟xampp安裝目錄下的Apache-》conf資料夾下的httpd.conf,用記事本開啟 首先在Listen 80埠下新增其他監聽埠: Listen 8001 Listen 8002 Listen 8003 然後在httpd.conf最

Windows server 防火牆開放oracle

備份參考:http://blog.csdn.net/rootcn/article/details/8899078 Windows server 2008 開放1521埠 Windows server 2003 開放監聽程式例外 先開防火牆,

使用HttpListener在伺服器端進行

   public class HttpPortListentHelp     {         private HttpListener _listener;         //負責監聽         private Thread _threadWatchPort;

阿里雲主機(Ubuntu16.04 64位)安裝tomcat8並修改

1.安裝好了java環境之後,開始安裝tomcat伺服器    java環境的安裝時安裝的openjdk環境,可以參考java環境安裝的文章,安裝之後設定了JAVA_HOME的環境變數,不過好像不設定環境變數也對tomcat的安裝沒有影響;   JAVA_HOME環境變數: