Автоматическое повторное подключение Netcat при отключении

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

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

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

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


person Karimi    schedule 05.12.2015    source источник


Ответы (1)


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

Попробуйте это (скрипт bash)

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
person Adrian Webster    schedule 07.12.2015
comment
Спасибо. Это кажется логичным решением. Однако по какой-то причине соединение netcat по-прежнему обрывается, хотя этот конкретный процесс выполняется бесконечно. Я отмечаю этот ответ как решение, поскольку проблема, похоже, связана с сервером, к которому я подключаюсь, а не с клиентом. - person Karimi; 07.12.2015