我基本上是在尝试编写一个类似 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