Skip to content

Instantly share code, notes, and snippets.

@shellscriptx
Created October 5, 2018 03:17
Show Gist options
  • Save shellscriptx/5cea432518e4e6acc646305df1b582f4 to your computer and use it in GitHub Desktop.
Save shellscriptx/5cea432518e4e6acc646305df1b582f4 to your computer and use it in GitHub Desktop.
# Array associativo
declare -A clientes=(
[francisco]='192.168.1.10:9090'
[rodrigo]='192.168.1.20:23'
[paula]='192.168.1.40:29'
)

test()
{
  local retorno servidores servidor

  # ip ou hostname
  user=('usuario')
  senha=('senha')
  timeout=40
  tentativas=2
  err="90"
  
  
  var config ssh_config_t
  
      #var configt ssh_config_t
      # Lê a lista de sevidores.
      for nome in ${@:2}; do
        # Implementa
        var cliente ssh_t
        
        echo "${servidor%:*}"
        echo "${servidor#*:}"
        # Separa os campos delimitados por ':'
            config.host = "${clientes[$nome]%:*}"  # host
            config.port = "${clientes[$nome]#*:}"  # port
        
        
        config.user = "$user"
        config.pass = "$senha"
        config.connect_timeout = "$timeout"
        config.connection_attempts = "$tentativas"
        
        
        # Inicializa a sessão
        cliente.connect_ex config
    
          # Executa o script no host remoto e salva o retorno do script.
          retorno=$(cliente.exec './alerta.sh')
          name=$(cliente.shell 'hostname')
          erro="Sua partição / está com $retorno % de uso. Favor verificar!"
          
          if [ $retorno -gt $err ]; then
          # Anexa e envia o retorno.
          ShellBot.sendMessage —chat_id ${message_chat_id[$id]} —text "$name $servidor\n\n$erro"
          fi
    
        # Fecha a sessão.
        cliente.close
      done
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment