shell script - comando de execução de host em lote (espera)

Você pode usar a ferramenta expect para executar comandos em vários hosts em lotes. expect é uma ferramenta para automatizar interações que simula entradas e respostas do usuário. Veja a seguir um exemplo de script de shell simples que demonstra como usar o comando expect para executar comandos em vários hosts em lotes:

#!/usr/bin/expect

set username "your_username"
set password "your_password"
set command "your_command"

set hosts {
    "host1" "192.168.1.1"
    "host2" "192.168.1.2"
    "host3" "192.168.1.3"
}

foreach {host ip} $hosts {
    spawn ssh $username@$ip
    expect {
        "*password:" {
            send "$password\r"
            expect "*$ "
            send "$command\r"
            expect "*$ "
            send "exit\r"
        }
    }
}

No script acima, você precisa substituir "your_username" e "your_password" por seu nome de usuário e senha reais. "your_command" é o comando a ser executado no host.

A variável hosts é uma lista contendo nomes de host e endereços IP. Você pode adicionar ou remover hosts conforme necessário ou carregar a lista de hosts de outro local.

O loop foreach no script percorre a lista de hosts e usa o comando spawn para iniciar uma nova sessão ssh em cada host. O comando expect é usado para combinar diferentes cenários de interação. Ao encontrar " password:", o script enviará automaticamente a senha e aguardará o prompt de comando (" $ ") aparecer. O script então envia o comando a ser executado e novamente aguarda o prompt de comando. Por fim, o script envia o comando "exit" para sair da sessão ssh.

Ao modificar apropriadamente as variáveis ​​e os comandos no script, você pode executar comandos personalizados em vários hosts em lotes.

Deve-se observar que senhas e informações confidenciais precisam ser tratadas com cuidado ao usar a ferramenta expect. Recomenda-se tomar medidas de segurança durante o uso real, como usar chaves SSH para autenticação para evitar o risco de divulgação de senha.

Espero que os exemplos acima possam ajudá-lo a entender como usar a ferramenta expect para executar comandos em vários hosts em lotes. De acordo com as necessidades reais, você pode personalizar e estender este exemplo.

Supongo que te gusta

Origin blog.csdn.net/tiansyun/article/details/132256632
Recomendado
Clasificación