Passar variável para gerar [duplicado]

4

Eu quero passar o nome do servidor que está listado em um arquivo (servers_list) como variável para o comando spawn que está em outro script (user_create_script). O objetivo deste script é criar o usuário (david) em vários servidores.

#cat servers_list
server1
server2
server3


#cat user_create_script
    spawn ssh -t user@$i sudo /usr/sbin/useradd david
    expect "password:"
    send "pass123\r"
    interact
    
por Dev 13.10.2018 / 15:37

1 resposta

2

Você teria  user_create_script como este

#!/usr/bin/expect -f
set fh [open servers_list r]
while {[gets $fh server_name] != -1} {
    spawn ssh -t user@$server_name sudo /usr/sbin/useradd david
    expect "password:"
    send "pass123\r"
    expect eof
}
close $fh

Eu assumo que seu usuário remoto não requer uma senha para o sudo.

Mais documentação sobre o Tcl (sobre a qual o expect é construído), incluindo tutoriais, está aqui: link

    
por 13.10.2018 / 16:55