連續監聽連接埠並將資料轉儲到文件

連續監聽連接埠並將資料轉儲到文件

我使用此命令來偵聽連接埠並將資料轉儲到檔案:

while :  ; do nc -l 0.0.0.0 10000 > log.txt & done

第一個請求工作完美,它被轉​​儲到 log.txt 中,但在第一個請求之後,nc 不再偵聽而是停止。

有人可以指出我做錯了什麼嗎?

我只是希望它在後台連續運行並將來自該端口的任何請求記錄到 log.txt 文件...

答案1

您必須新增一個選項數控。此選項取決於版本數控你在跑步。例如,就我而言(Kubuntu),選項是-k。從手冊頁來看,

-k 強制 nc 在目前連線完成後繼續偵聽另一個連線。使用此選項而不使用 -l 選項是錯誤的。

我無法保證-k有效(當然,除非你使用的是 Ubuntu),你將不得不搜尋類似的東西。例如,在我的 Debian 上,-k不存在,但你發現:

-q 秒 在 stdin 上的 EOF 後,等待指定的秒數,然後退出。如果秒為負數,則永遠等待

編輯:

要檢查它是否有效,請在一台電腦上:

  nc -k -l 0.0.0.0 10000 > out.txt

在第二台電腦上:

  echo Hello | nc IP_address_of_first_pc 10000

多次發出上述命令,然後中斷數控pc1 上的指令,檢查 out.txt 中的行數。

相關內容