Bucle y lectura por línea en Bash [cerrado]

-2
  1. Leer un archivo de nombres de servidor (.txt) línea por línea
  2. recorrer cada nombre de servidor y conectarse mediante ssh

¿Alguna sugerencia, comentario e idea?

mkrouse
fuente
¿Cuál es tu pregunta?
gronostaj
1
Sugerencias: busque en este sitio y google antes de publicar; no esperes que hagamos tu tarea por ti, te ayudaremos si tienes problemas específicos pero no haremos todo el trabajo; . Comentarios: explique qué está tratando de hacer, qué sistema operativo está utilizando, si se conecta a los servidores con el mismo nombre de usuario y contraseña, si tiene acceso sin contraseña, etc. etc. Ideas: utilice un bucle for.
terdon
Que has intentado Como se mencionó anteriormente, no vamos a hacer esto simplemente por usted. Si tiene una solución que no funciona, a menudo podemos ayudarlo, pero no haremos su trabajo por usted.
Mokubai

Respuestas:

1

Intenta algo como esto,

while read p; do
    ssh root@$p ...
done < server_names.txt

No lo he probado, pero en principio debería recorrer los servidores en server_names.txt y conectarse a ellos.

mantequilla de maní
fuente
en principio no debería funcionar, a menos que use la -nopción ssh. Y ni siquiera estoy hablando de permitir conexiones raíz.
BatchyX
@BatchyX ¿por qué necesitarías la -nopción? Puede conectarse sin él y ejecutar comandos perfectamente bien. -nes necesario si desea ejecutar en segundo plano. Además, este tipo de rootacceso suele ser estándar, por ejemplo, cuando se conecta a diferentes nodos de un clúster.
terdon 01 de
@terdon: necesita la -nopción porque de lo contrario, ssh leerá y comerá stdin y lo transmitirá al host remoto, por si acaso. Además, permitir el acceso de root es generalmente una mala idea. No debe alentar a las personas a hacer eso si no es realmente necesario.
BatchyX 01 de
@BatchyX cada laboratorio en el que he trabajado permitió el acceso a la raíz entre máquinas en la misma red. No se pudo conectar como root desde fuera de la red, pero se habilitó internamente. Puede que tengas razón y eso no es una buena idea, pero es bastante común. En cuanto a -nOK, seguro que protegerá contra la lectura de stdin no deseada, pero su comentario dice que esta solución "no debería funcionar" sin la -ncual ciertamente no es cierto.
terdon 01 de
@terdon: Eso es aterrador, por decir lo menos. En cuanto a -n, no me repetiré. Por favor, intente antes de discutir. Este es un problema conocido que ya ha generado muchas preguntas. Sin -n, sshleeré stdin. Te guste o no. (y si el comando remoto realmente necesita entrada de stdin o no).
BatchyX 01 de