Script do Ksh / Bash para executar comandos com base no nome do kernel

1

Eu estou tentando construir um script que irá pegar todos os nomes de host de um arquivo e executar vários comandos, dependendo do nome do kernel.

Primeiro quero ssh para a máquina host e depois de emitir um comando uname -a eu quero enviar um conjunto específico de comandos, dependendo da versão do sistema operacional usando caso

O que eu fiz até agora:

#!/usr/bin/ksh

for ssh_host in $(cat hostsFile)
do
    echo $ssh_host
    kernel='ssh $ssh_host "uname -a"'
    echo $kernel

case $kernel in
        "Linux")
                echo "This is Linux"
                ;;

    "AIX")
            echo "This is AIX"
    ;;
    *)
            echo "Not sure what this is"
    ;;
esac
done

Estou preso onde devo verificar se a string "Linux" está presente na saída uname -a da variável $ kernel.

    
por Stan K 29.05.2018 / 16:44

1 resposta

1

Você só precisa tornar seus padrões menos exatos: pesquise a palavra em algum lugar no texto

case $kernel in
    *Linux*) echo "This is Linux" ;;
    *AIX*)   echo "This is AIX"   ;;
    *)       echo "Not sure what this is: $kernel" ;;
esac

Além disso, você pode ser mais específico, pelo menos com o GNU uname

$ uname -s
Linux

Você teria que verificar a página man do unix do AIX para ver se há a mesma opção lá.

    
por 29.05.2018 / 17:37