我基本上試圖編寫一個類似pstree的命令,除了它應該遵循跨機器的過程。遵循機器間的pid(ssh)
我的意思是,如果我運行此:
$ 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
我不完全理解這個問題。 「映射」ssh會話意味着什麼?你想給你的ssh會話命名嗎? (那麼漂亮的應用程序的屏幕將是我的指針溶液) – Karussell 2010-02-08 22:15:47
我要地圖命令的進程ID: 「SSH $節點休眠1000」 向命令的進程ID: 睡眠1000「 在遠程機器上($節點)。 – user268744 2010-02-09 07:15:09