我正在運行一個bash腳本,它通過我的遠程服務器IP列表,通過netcat(telnet)爲每一行連接,並運行一些命令。如何終止netcat,以便我的腳本可以再次循環?
問題是我似乎無法弄清楚如何終止netcat,以便腳本可以循環到列表中的下一個IP。
這裏的相關位:
#!/bin/bash
while ISF= read -r line;do
(
sleep 3
printf 'command1'
sleep 3
printf 'command2'
sleep 3
) | nc $line
done < ~/servers.txt
遠程服務器不發送EOF,所以是不是我可以echo
或printf
在netcat來終止的netcat,使該腳本可以遍歷一次?我真的不想爲-w
標誌執行超時,因爲我有很多服務器需要這樣做,並且超時會使時間更長。
嗯,只是一個很長的猜測:'printf'echo「QUIT」''? – joaumg
不,這不起作用,因爲它只是將「退出」一詞發送到遠程服務器。我會假設在netcat中有類似於telnet(CTRL +)的某種轉義函數,但我不知道它是什麼。 – Moses
但是,將quit命令發送到活動連接將關閉當前連接...否?無論如何,'printf'echo「^ Z」''IIRC。 – joaumg