2015-12-05 3 views
-1

Я установил серию подключений netcat в среде Bash/Debian Linux на удаленные серверы, которые периодически отправляют мне сообщения. Я постоянно пишу результаты этих сообщений в локальный файл следующим образом:Netcat auto reconnect on disconnection

nc 192.168.1.38 23 >> results 
nc 192.168.1.39 4501 >> results 
nc 192.168.1.40 8080 >> results 

Все работает отлично. Но периодически один из удаленных серверов убивает соединение netcat (т. Е. Соображения производительности, перегрузки и т. Д.). Когда это произойдет, я должен вручную подключиться к серверу. Существует ли автоматизированный метод немедленного повторного подключения, чтобы не было потеряно никаких промежуточных сообщений?

Предложения в bash или python предпочтительны.

ответ

1

Вы можете использовать бесконечный цикл. Когда Netcat заканчивается это будет просто начать заново ... Бесконечно ...

Попробуйте (Баш скрипт)

while true 
do 
    nc 192.168.1.38 23 >> results 
    nc 192.168.1.39 4501 >> results 
    nc 192.168.1.40 8080 >> results 
done 
+0

Спасибо. Это кажется логичным решением. По какой-то причине, однако, связь netcat все еще умирает, хотя этот конкретный процесс выполняется бесконечно. Я отмечаю этот ответ как решение, поскольку проблема, похоже, связана с сервером, к которому я подключаюсь, а не с клиентом. – Karimi