加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 关注机器间的pids(ssh)

发布时间:2020-12-14 01:41:23 所属栏目:Linux 来源:网络整理
导读:我基本上尝试编写一个类似pstree的命令,除了它应该遵循跨机器的进程. 我的意思是如果我运行这个: $ssh $node sleep 1000 那么命令应该显示如下: ssh $node -- ($node) sleep 1000 如果我跑步: $ssh $node ssh $node sleep 1000ssh $node---($node) ssh $n
我基本上尝试编写一个类似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

解决方法

实际上,我认为你的自发解决方案是正确的方法:使用netstat获取源端口并在远程机器上查找它.您可能无法使用“netstat -p”而不是root用户 – 我在两台计算机上尝试过,一台很高兴向我展示我自己的流程,另一台却没有.

除了ssh客户端,您可以扩展它以查找使用ssh连接的其他客户端,如rsync或Mercurial.小心不要递归追踪程序自己的连接!

使用netstat和pstree的快速实验表明这个想法是合理的:

me@mymachine:~$netstat -p
(Not all processes could be identified,non-owned process info
 will not be shown,you would have to be root to see it all.)
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 mymachine.example:43681 remote.example.com:ssh ESTABLISHED 27044/ssh
tcp        0      0 mymachine.example:39228 remote.example.com:ssh ESTABLISHED 14499/ssh
tcp        0      0 mymachine.example:45814 remote.example.com:ssh ESTABLISHED 20899/ssh
 me@mymachine:~$ssh remote netstat -p | grep mymachine.example:43681
tcp        0      0 remote.example.com:ssh mymachine.example:43681 ESTABLISHED 10361/1
me@mymachine:~$ssh remote pstree -a 10361
sshd
  `-grep -n -e wotsit -i -R /local/home/me/somewhere /dev/null

我有兴趣看到结果,因为它对我非常有用!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读