해결책이 있나요?
nc 192.168.1.1 1234는 연결될 때까지 재시도하며, 포트 번호 192.168.1.1에서 수신 대기하는 머신의 "nc 192.168.1.1 1234"를 통해 출력을 보냅니다. 1234.
??
//nc 명령을 통해 연결이 생성되면 "nc"를 통해 메시지를 보내고 싶습니다. 그렇지 않으면 nc를 통해 다시 연결을 시도합니다. //
답변1
bash
쉘이나 유사한 쉘을 사용하는 경우 다음을 수행할 수 있습니다.
cat message | while ! nc 192.168.1.1 1234 ; do sleep 1 ; done
답변2
비슷한 문제가 있지만 컬이 있습니다. 이를 위해 "재시도"라는 특수 도구를 만들었습니다. stdin 읽기를 한 번만 다시 시도하고, 성공할 때까지 nc 명령을 반복한 다음, 성공하면 파이프의 다음 명령에 stdout을 한 번만 출력합니다.
~$ echo output | retry -- nc 192.168.1.1 1234
retry: nc returned 1, backing off for 10 seconds and trying again...
retry: nc returned 1, backing off for 10 seconds and trying again...
^C
https://github.com/minfrin/retry
최신 Debian, Ubuntu 및 Nix와 함께 즉시 사용할 수 있습니다.