Я в основном пытаюсь написать pstree-подобную команду за исключением того, что она должна следовать процессам на разных машинах.
Я имею в виду, что если я запущу это:
$ ssh $node sleep 1000
Тогда команда должна отобразить что-то вроде этого:
ssh $node -- ($node) sleep 1000
А если я бегу:
$ ssh $node ssh $node sleep 1000
ssh $node---($node) ssh $node---($node) sleep 1000
И так далее ...
У меня такой вопрос: как я могу сопоставить один сеанс SSH на одном компьютере с порожденным процессом на другом компьютере?
Локальные родительско-дочерние процессы не являются проблемой, но как мне определить, какая команда ssh на одном узле запустила другой процесс на другом узле.
Linux 2.6.18
только openSSH для "удаленных" вещей. Работает OpenSSH_4.3p2 в настоящее время.
SSH-доступ ко всем узлам, конечно (аутентификация на основе ключей), поэтому ps и netstat доступны со всех узлов.
Подходит только для Linux "хаки", не обязательно быть переносимым, хотя это, конечно, дополнительный бонус.
Пользователь всегда будет одним и тем же, и моя команда / скрипт выполняется под этим пользователем. Этот пользователь не root.
Не обязательно быть быстрым, только точным.
Самопроизвольным решением было бы написать клон pstree
, который запускается в командной строке "ssh
", вычисляет порт источника, а затем идет к рассматриваемому удаленному компьютеру и выясняет, какой из sshd
детей, которые были созданы этой конкретной командой.
Но, может быть, есть более умный способ? : P