Básicamente estoy tratando de escribir un comando pstree, excepto que debe seguir los procesos en todas las máquinas.Seguir pids across machines (ssh)
Lo que quiero decir es que si me quedo esto:
$ ssh $node sleep 1000
A continuación, el comando debería mostrar algo como esto:
ssh $node -- ($node) sleep 1000
y si estoy ejecutando:
$ ssh $node ssh $node sleep 1000
ssh $node---($node) ssh $node---($node) sleep 1000
Y así sucesivamente ...
Mi pregunta es esta: ¿cómo puedo asignar una sesión ssh en una máquina a un proceso generado en otra máquina?
procesos locales de padres e hijos no son un problema, pero ¿cómo puedo averiguar cual de comandos ssh en un nodo que desencadenó otro proceso en otro nodo.
Linux 2.6.18
única openSSH para la materia "a distancia". Ejecutando OpenSSH_4.3p2 actualmente.
acceso SSH a todos los nodos de curso (autenticación basada en una clave) para ps y netstat están disponibles en todos los nodos.
sólo Linux "hacks" están bien, no tiene por qué ser portátil aunque eso sería una ventaja añadida, por supuesto.
El usuario siempre será el mismo y mi comando/script se está ejecutando como ese usuario. Ese usuario no es root
No tiene que ser rápido, solo preciso.
La solución espontánea sería escribir un clon pstree
, que desencadena en la cadena de comando "ssh
", se da cuenta de la fuente de puertos y luego se va a la máquina remota en cuestión y se da cuenta de lo que uno de sshd
los hijos que se generó por este comando en particular.
¿Pero tal vez hay una manera más inteligente? : P
No entiendo completamente la pregunta. ¿Qué quieres decir con "mapeo" de una sesión ssh? ¿quieres nombrar tu sesión ssh? (A continuación, la pantalla de aplicación agradable sería mi puntero a la solución) – Karussell
quiero asignar el identificador de proceso del comando: "ssh $ nodo sueño 1000" a la ID del proceso del comando: "dormir 1000" en la máquina remota ($ node). – user268744