+ Responder ao Tópico



  1. #1
    whinston
    Visitante

    Padrão Bash: tem algo errado

    Ae pessoas, to tentando fz um programinha em bash pra diagnóstico.
    Ele vai ficar no crond rodando a cada x tempo e se detectar algo fora do comum, vai me avisar.

    To na fase de levantar qualé a rota padrão e tentar pingar.
    Porém, quando eu dou um route:

    200.171.57.0 * 255.255.255.192 U 0 0 0 eth1
    192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
    169.254.0.0 * 255.255.0.0 U 0 0 0 eth1
    default 200-171-57-1.ds 0.0.0.0 UG 0 0 0 eth1

    Depois eu uso: route | grep default | awk {'print $2'}
    E retorna: 200-171-57-1.ds

    Na verdd o "problema" tá no route, que não está mostrando o nome inteiro do host. Alguma dica ?

  2. #2

    Padrão Bash: tem algo errado

    use route -n q ele da soh o ip

  3. #3
    whinston
    Visitante

    Padrão perfecto!

    hum, perfecto!

    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
    192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
    169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
    0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth1

    O que esta flag quer dizer ? Por um acaso é a default ?

    #!/bin/bash
    rota=`route -n | grep UG | awk {'print $2'}`
    pingagw=`ping -c5 $rota | grep '100% packet loss'`
    dns=`ps aux | grep named | grep chroot`
    smtp=`ps aux | grep sendmail | grep accepting`
    pop=`ps aux | grep pop | grep login`
    proxy=`ps aux | grep squid | grep ncsa`
    web=`ps aux | grep httpd | grep 54`
    ftp=`ps aux | grep proftpd | grep accepting`
    mysql=`ps aux | grep mysql | grep safe`
    rede1=`ifconfig eth0 | grep inet`
    rede2=`ifconfig eth1 | grep inet`


    if [ "$dns" = "" ]; then
    echo "DNS - Problema"
    else
    echo "DNS - OK"
    fi

    if [ "$smtp" = "" ]; then
    echo "Email SMTP - Problema"
    else
    echo "Email SMTP - OK"
    fi

    if [ "$pop" = "" ]; then
    echo "Email POP - Problema"
    else
    echo "Email POP - OK"
    fi

    if [ "$web" = "" ]; then
    echo "Web - Problema"
    else
    echo "Web - OK"
    fi

    if [ "$proxy" = "" ]; then
    echo "Proxy - Problema"
    else
    echo "Proxy - OK"
    fi

    if [ "$ftp" = "" ]; then
    echo "FTP - Problema"
    else
    echo "FTP - OK"
    fi

    if [ "$mysql" = "" ]; then
    echo "MySQL - Problema"
    else
    echo "MySQL - OK"
    fi

    if [ "$rede1" = "" ]; then
    echo "Placa de Rede 1 - Problema"
    else
    echo "Placa de Rede 1 - OK"
    fi

    if [ "$rede2" = "" ]; then
    echo "Placa de Rede 2 - Problema"
    else
    echo "Placa de Rede 2 - OK"
    fi

    if [ "$pingagw" = "" ]; then
    echo "Gateway - OK"
    else
    echo "Gateway - Problema"
    fi

  4. #4

    Padrão Bash: tem algo errado

    ahuehuaeheau jah fiz um script igualzinho desses, mas aposentei e usei nagios, nao da pra confiar em ping :P

    o gw default eh o 0.0.0.0 sempre

  5. #5
    whinston
    Visitante

    Padrão ntop

    ah, então, eu uso vários, mas tenho um meu que loga tudo em mysql e me avisa no celular.. me apeguei nele, rs..

    já testei alguns como ntop, mas não posso abandonar meu filho.
    quero que o cliente rode este script antes de me ligar, ae já vai saber onde que tá o problema e o que fazer..

    há um tempo atrás eu mandei 1 passo-a-passo pra eles acharem os problemas, fazendo teste de ping, nmap, ps, telnet, etc.. Mas nego não faz, é mais fácil ligar ne?

    vamos ver agora rodando um script que já vai falar quale o erro, se eles tem 1 pouco de pena de mim! toda vez que tiro ferias eu preciso sair feito doido atras 1 cyber pra saber q no final das contas tem 1 cabo solto :/

    voltando ao 0.0.0.0, blz, disto eu sabia, rs..
    mas como tem vários 0.0.0.0. no retorno do comando, eu tentei filtrar usando grep e awk mas tava trabalhoso d+

  6. #6

    Padrão Bash: tem algo errado

    o default sempre eh o ultimo da lista :P e tem a UG
    eh q num to no linux pra testa, mas se nao me engano tem um comando dele que mostra somente o default