Сценарий: выполнение команды SSH и оставление оболочки открытой, вывод канала в файл - PullRequest
0 голосов
/ 28 января 2010

Я хотел бы выполнить команду ssh и направить вывод в файл.

В общем, я бы сделал:

ssh user @ ip "command" >> / myfile

проблема в том, что ssh закрывает соединение после выполнения команды, однако - моя команда отправляет вывод в канал ssh через другую программу в фоновом режиме, поэтому я не получаю вывод.

Как я могу обработать ssh, чтобы оставить мою оболочку открытой?

cheers

sven

Ответы [ 2 ]

1 голос
/ 28 января 2010

Насколько я понимаю, command запускает некоторый фоновый процесс, который, возможно, запишет некоторые выходные данные в терминал позже. Если command завершится раньше, сеанс ssh будет прерван, и для фоновой программы не будет терминала для записи.

Одно простое и наивное решение - просто спать достаточно долго

ssh user@ip "command; sleep 30m" >> /myfile

Лучшим решением, чем сон, было бы дождаться завершения фонового процесса (процессов) более разумным способом, но это невозможно сказать без дополнительных подробностей.

0 голосов
/ 28 января 2010

Что-то более мощное, чем bash, - это Python с Paramiko и PyExpect.

...