У меня немного интересная ситуация, которую я не могу понять.
Мне нужна возможность удаленно выдавать команду через S SH, которая затем направляет результаты в туннель ncat. на оригинальный сервер.
Мои команды немного сложнее (включая innobackupex, утилиту резервного копирования MySQL), но этот минимальный пример показывает ту же проблему:
ncat -l 9970 &
ssh db-202 "echo 'testing' | ncat $BACKUPSERVER 9970"
... other commands
Проблема в том, что после команда echo завершается (или запускается), скрипт просто зависает, а последующие команды не запускаются. Мне нужно отправить Ctrl- c (SIGINT), чтобы продолжить. Очевидно, что это не идеально в контексте сценария bash, где после автоматического выполнения этой команды может потребоваться много вещей.
Не уверен, что это уместно, но отправка сигинты не всегда правильно завершите туннель ncat с обеих сторон. Иногда мне нужно убить -9, возможно, из-за того, что sigint что-то испортил.
Кто-нибудь может объяснить это поведение и как я могу обойти это? Или лучший способ сделать то, что я хочу?
Спасибо!