看板 Linux 關於我們 聯絡資訊
各位好, 不知道有沒有哪位大大同時在 CentOS 和 RHEL3 上面使用過 nc 這個指令的? 我主要是想要用這個指令對其他機器進行監控, 然後利用監控的結果來發檢查信。 但無奈地光是使用這個指令就會有不同的結果發生。 以下 xxx.xxx.xxx.xxx 和 yyyy 分別代表我要監控的 Host IP 和 Port RHEL3: 指令:nc -v -w 1 xxx.xxx.xxx.xxx -z yyyy 結果:xxx-xxx-xxx-xxx.com.tw [xxx.xxx.xxx.xxx] yyyy open 而且這個結果不能直接用指令抓來用, 原因是他如果在 nc 的執行指令最後面加上 2>/dev/null 就不會有這行結果了。 CentOS: 指令:nc -v -w 1 xxx.xxx.xxx.xxx -z yyyy 結果:Connection to xxx.xxx.xxx.xxx yyyy port [tcp] succeeded! 這行可以直接以指令抓來用,所以可以直接用來判定監控結果是否正確。 所以想請問一下,nc 這個指令是否可以在 RHEL3 上面使用? 或是有什麼其他的執行結果可供抓取?感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.141.18
danny8376:2>&1 把stderr導到stdout就好了 02/27 01:37
pizzahut:了解,明天去公司試試。感謝提供方向。 02/27 02:01
直接下指令:echo $(nc -v -w 1 xxx.xxx.xxx.xxx -z yyyy) | grep open | wc -1 可以正確抓到 1 的數值 但是,如果把他寫成條件式就抓不到,不清楚為啥 @@ 條件式寫法: (前面省略) result=$(nc -v -w 1 $ip -z $port 2>&1) if "[ "$(echo $result | grep "open" | wc -1)" == 1 ]; then echo -e "connection succeeded." elif "[ "$(echo $result | grep "refused" | wc -l)" == 1 ]; then echo -e "connection failed." else echo -e "connection data error!" fi (後面省略) ※ 編輯: pizzahut 來自: 60.248.152.80 (02/27 10:05)
tkcn:我記得 nc 好像有兩個實作耶 02/27 10:26
pizzahut:找到問題了,跟雙引號有關... @@~ 02/27 11:05
soem:那個if對吧 02/27 20:03
pizzahut:嗯,第一個if這樣標雙引號好像會讓系統判別錯誤@@ 03/01 21:47