簡體   English   中英

如何添加無限nc(netcat-openbsd)作業作為crontab -e命令以運行@restart?

[英]How do I add an infinite nc (netcat-openbsd) job as a crontab -e command to run @restart?

在默認的ubuntu終端上,以下工作正常:

    nc -P ANONYMOUS 10.0.1.2 7700 >> ~/some.log

我使用該命令使一台計算機連接到遠程服務器,然后坐在那里,偵聽遠程服務器發送給它的信息。 時間的長度是無限的,並且每隔幾秒鍾就會將行添加到日志中。

但是,一旦我嘗試使用crontab -e將此命令添加為cron作業,它就不起作用了!

(我真的很想cron啟動命令@restart

我已經隔離了一些問題:

看起來該連接最初是建立的,但隨后立即關閉。

當我在命令中添加"-q 60"

 nc -q 60 -P ANONYMOUS 10.0.1.2 7700 >> ~/some.log

cronjob實際上確實打開了連接,並按照指定的方式監聽了60秒(是!),但是當我將其更改為"-q -1"來指定無限的時間段時,連接立即關閉(boo!)。 。

手冊頁明確聲明了-q :“在stdin EOF后的-q,等待指定的秒數,然后退出。如果秒為負數,則永遠等待。”

我相信這個問題可能與-q選項的默認行為有關,因為我在這里找到了相關的錯誤報告/修復:

 https://bugs.launchpad.net/ubuntu/+source/netcat-openbsd/+bug/544935 

其中可能已經針對具有提示的終端解決了該問題,但可能沒有針對沒有提示的終端解決了該問題?

這也可能是一個獨立的問題,與將負值傳遞給nc -q選項有關。

另一種可能性是,它甚至可能與cron外殼有關,但是,我嘗試過的其他測試似乎表明cron(sh)ell正在按預期方式工作。

注意,在定義crontab命令(( env -i sh;bash;以及采購各種.bashrc文件)時,我嘗試使用各種外殼和環境組合。設置$PS1以確保默認.bashrc文件中的第5行不會在返回之前該文件是完全來源的。)。

我正在運行: Ubuntu 12.04.3 LTS版本
發行: 12.04 netcat-openbsd: 1.89-4ubuntu1

所以我的問題是:在這種情況下,為什么不添加"-q -1" 和:

我還必須完成其他哪些選擇?

嘗試將'-d'選項添加到netcat:

nc -d -q -1 -P ANONYMOUS 10.0.1.2 7700 >> ~/some.log

它為我工作。 按照手冊頁,-d標志為“請勿嘗試從stdin讀取”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM