Announcement

Collapse
No announcement yet.

Plugin Oracle??

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • lowdata
    replied
    Originally posted by Poulpatine View Post
    Te prends pas la tête sinon, et vire la partie qui vérifie l'existence dans tnsnames.ora .
    Re. Bin je viens de commenter la ligne, ca lance le script mais il ne se passe rien et ca ne sort aucun message d'error....

    Code:
    suse-exp:/usr/local/nagios/libexec # ./check_oracle -H strat1 -w 80 -c 95
    
    suse-exp:/usr/local/nagios/libexec #
    La commande precedente est censée me retourner quoi quand le tnsnames.ora est commenté ? ? en tout cas ca ne marche pas :/

    Leave a comment:


  • Poulpatine
    replied
    Te prends pas la tête sinon, et vire la partie qui vérifie l'existence dans tnsnames.ora .

    Leave a comment:


  • lowdata
    replied
    UP ! une tite aide venant de DBA ou autre please c la galere la

    Leave a comment:


  • lowdata
    replied
    Ok...donc apres m'etre renseigné sur les tnsnames.ora etc....tjs le meme soucis....DONC :

    Un tnsping vers mon serv oracle fonctionne bien. Donc la conf de tnsnames.ora est correcte a priori. MAIS j'ai tjs ce message d'erreur :

    ./check_oracle -H strat1 -w 80 -c 95
    Hote introuvable dans tnsnames.ora
    WTF ! ? Voila le check_oracle (ORACLE_HOME et TNS_ADMIN sont bien renseignés) :

    #!/bin/bash
    #
    # Test de tablespaces
    #
    #
    export IFS='^M' # on ne traite pas les espaces comme des retours chariot
    export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
    TNSNAMES=$ORACLE_HOME/network/admin/tnsnames.ora
    LOGIN=system
    PASS=manager
    STATE_OK=0
    STATE_WARNING=1
    STATE_CRITICAL=2
    STATE_UNKNOWN=3
    RETURN_FILE=/usr/local/oreon/log/retour.tmp
    EXIT=$STATE_UNKNOWN

    cat /dev/null > $RETURN_FILE

    if [[ $# -lt 6 ]]
    then
    echo "Usage : todo usage"
    exit $STATE_UNKNOWN
    fi
    #echo Il y a $# arguments
    while getopts w:c:H:h option
    do
    case $option in
    w)
    warn=$OPTARG
    ;;
    c)
    crit=$OPTARG
    ;;
    H)
    host=$OPTARG
    ;;
    *)
    echo "Todo : usage"
    exit $STATE_UNKNOWN
    ;;
    esac
    done
    grep -q $host $TNSNAMES

    if [[ $? -eq 1 ]]
    then
    echo "Hote introuvable dans tnsnames.ora"
    exit $STATE_UNKNOWN
    fi

    $ORACLE_HOME/bin/sqlplus -s $LOGIN/[email protected]$host <<EOF |sed -e 's/[\t]/ /g'|sed -e 's/ */ /g'|(while read i
    set pagesize 100
    set linesize 200
    set head off
    set feed off

    col "EXT TS" format A36
    col TAILLE format 999999999999
    col UTILISE format 999999999999
    col %UTILISE format 9999
    col LIBRE format 999999999999
    col %LIBRE format 9999
    col %UTIL_MAXSIZE format 999
    col DISPO_MAXSIZE format 999999

    select 'YES '||ddf.TABLESPACE_NAME "EXT TS",
    ddf.BYTES/1024 "TAILLE",
    (ddf.BYTES-DFS.BYTES)/1024 "UTILISE",
    round(((ddf.BYTES-dfs.BYTES)/ddf.BYTES)*100,2) "%UTILISE",
    dfs.BYTES/1024 "LIBRE",
    round((1-((ddf.BYTES-dfs.BYTES)/ddf.BYTES))*100,2) "%LIBRE",
    F."%UTIL_MAXSIZE" "%UTIL_MAXSIZE",
    F.DISPO_MAXSIZE "DISPO_MAXSIZE"
    from (select TABLESPACE_NAME,
    sum(BYTES) bytes
    from dba_data_files
    group by TABLESPACE_NAME) ddf,
    (select TABLESPACE_NAME,
    sum(BYTES) bytes
    from dba_free_space
    group by TABLESPACE_NAME) dfs,
    (select TABLESPACE_NAME,
    ROUND(100*SUM(BYTES)/SUM(MAXBYTES)) "%UTIL_MAXSIZE",
    ROUND((SUM(MAXBYTES)-SUM(BYTES))/1048576) "DISPO_MAXSIZE"
    from DBA_DATA_FILES
    where AUTOEXTENSIBLE ='YES'
    group by TABLESPACE_NAME) F
    where ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME and
    F.TABLESPACE_NAME=dfs.TABLESPACE_NAME
    union
    (
    (
    select 'NO '||ddf.TABLESPACE_NAME "EXT TS",
    ddf.BYTES/1024 "TAILLE",
    (ddf.BYTES-DFS.BYTES)/1024 "UTILISE",
    round(((ddf.BYTES-dfs.BYTES)/ddf.BYTES)*100,2) "%UTILISE",
    dfs.BYTES/1024 "LIBRE",
    round((1-((ddf.BYTES-dfs.BYTES)/ddf.BYTES))*100,2) "%LIBRE",
    0 "%UTIL_MAXSIZE",
    0 "DISPO_MAXSIZE"
    from (select TABLESPACE_NAME,
    sum(BYTES) bytes
    from dba_data_files
    group by TABLESPACE_NAME) ddf,
    (select TABLESPACE_NAME,
    sum(BYTES) bytes
    from dba_free_space
    group by TABLESPACE_NAME) dfs,
    (select TABLESPACE_NAME
    from DBA_DATA_FILES
    where AUTOEXTENSIBLE ='NO'
    group by TABLESPACE_NAME) F
    where ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME and
    F.TABLESPACE_NAME=dfs.TABLESPACE_NAME
    )
    minus
    (
    select 'NO '||ddf.TABLESPACE_NAME "EXT TS",
    ddf.BYTES/1024 "TAILLE",
    (ddf.BYTES-DFS.BYTES)/1024 "UTILISE",
    round(((ddf.BYTES-dfs.BYTES)/ddf.BYTES)*100,2) "%UTILISE",
    dfs.BYTES/1024 "LIBRE",
    round((1-((ddf.BYTES-dfs.BYTES)/ddf.BYTES))*100,2) "%LIBRE",
    F."%UTIL_MAXSIZE" "%UTIL_MAXSIZE",
    F.DISPO_MAXSIZE "DISPO_MAXSIZE"
    from (select TABLESPACE_NAME,
    sum(BYTES) bytes
    from dba_data_files
    group by TABLESPACE_NAME) ddf,
    (select TABLESPACE_NAME,
    sum(BYTES) bytes
    from dba_free_space
    group by TABLESPACE_NAME) dfs,
    (select TABLESPACE_NAME,
    ROUND(100*SUM(BYTES)/SUM(MAXBYTES)) "%UTIL_MAXSIZE",
    ROUND((SUM(MAXBYTES)-SUM(BYTES))/1048576) "DISPO_MAXSIZE"
    from DBA_DATA_FILES
    where AUTOEXTENSIBLE ='YES'
    group by TABLESPACE_NAME) F
    where ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME and
    F.TABLESPACE_NAME=dfs.TABLESPACE_NAME
    )
    );
    exit;
    EOF
    do
    occupe=`echo $i|cut -d ' ' -f 7`
    if [[ $occupe -gt $crit ]]
    then
    echo -n "Critical : " >> $RETURN_FILE
    echo -n $i|cut -d ' ' -f 2,7 >> $RETURN_FILE
    elif [[ $occupe -gt $warn ]]
    then
    echo -n "Warning : " >> $RETURN_FILE
    echo $i|cut -d ' ' -f 2,7 >> $RETURN_FILE
    fi
    done)
    cat $RETURN_FILE|tr \\n " "
    if grep -q Critical $RETURN_FILE
    then
    EXIT=$STATE_CRITICAL
    elif grep -q Warning $RETURN_FILE
    then
    EXIT=$STATE_WARNING
    else
    echo "Ok"
    EXIT=$STATE_OK
    fi

    rm $RETURN_FILE
    exit $EXIT
    et mon tnsnames.ora qui fonctionne :

    # tnsnames.ora Network Configuration File:
    hexa=
    (DESCRIPTION=
    (ADDRESS=
    (PROTOCOL=tcp)(HOST=192.168.65.7)(PORT=1521))
    (CONNECT_DATA =
    (SID=hexa)
    )
    )
    Quiaurait une idée pour faire fonctionner ce fichu plugin ? ? Je vois vraiment pas ce qui cloche la Merci d'avance.
    Last edited by lowdata; 5 September 2007, 11:28.

    Leave a comment:


  • Poulpatine
    replied
    Alors tu peux relire mon post #26

    Quand je fais un tnsping tout seul ça ne fonctionne pas car je n'ai pas mis l'installation d'Oracle dans mon $PATH par contre si je passe par le chemin absolu de tnsping ça marche.

    Leave a comment:


  • lowdata
    replied
    Et bien oui, au post #24 tu fournis un script avec la variable tnsnames.ora
    au post #30 tu fournis un script sans la variable tnsnames.ora
    et au post #31 je dis que j'ai essayé avec tes 2 scripts, avec et sans la variable tnsnames (qui existe bien sur mon serv oracle), et j'ai toujours le meme message d'erreur. ?

    Sinon quand tu test un tnsping en commande sur ta machine Oreon tu as quelque chose ou command not found ? Je me demande si ce service doit etre lancé ou si il est apélé auto.

    Leave a comment:


  • Poulpatine
    replied
    Je pense que tu te trompes de script, relis un peu mes messages plus haut. Je veux bien essayer de te dépanner mais soit un peu plus attentif

    Leave a comment:


  • lowdata
    replied
    Re. Bon rectification j'ai bien un tnsnames.ora au meme endroit que toi, mais que je renseigne ce chemin ou pas je me prends le meme msg d'erreur : TODO USAGE ! et rien qui se passe apres Je vois pas a quoi correspond ce message ya bien juste comme option -oranames a mettre ? c'est bien la meme pour tout type de version d oracle ?

    Leave a comment:


  • Poulpatine
    replied
    Bah sinon tu peux utiliser ça ( ainsi, pas de prise de tête ) :

    Code:
    #!/bin/bash
    #
    # Test de tablespaces
    #
    #
    export IFS='^M' # on ne traite pas les espaces comme des retours chariot
    export ORACLE_HOME=/opt/oracle/product/10.2.0/client_1
    LOGIN=pwet
    PASS=pwet
    STATE_OK=0
    STATE_WARNING=1
    STATE_CRITICAL=2
    STATE_UNKNOWN=3
    RETURN_FILE=/opt/oreon/log/retour.tmp
    EXIT=$STATE_UNKNOWN
    
    cat /dev/null > $RETURN_FILE
    
    if [[ $# -lt 6 ]]
    then
            echo "Usage : todo usage"
            exit $STATE_UNKNOWN
    fi
    
    while getopts w:c:H:h option
    do
     case $option in
      w)
       warn=$OPTARG
       ;;
      c)
       crit=$OPTARG
       ;;
      H)
       host=$OPTARG
       ;;
      *)
       echo "Todo : usage"
       exit $STATE_UNKNOWN
       ;;
     esac
    done
    
    $ORACLE_HOME/bin/sqlplus -s $LOGIN/[email protected]$host <<EOF |sed -e 's/[\t]/ /g'|sed -e 's/  */ /g'|(while read i
    set pagesize 100
    set linesize 200
    set head off
    set feed off
    
    col "EXT  TS"     format A36
    col TAILLE        format 999999999999
    col UTILISE       format 999999999999
    col %UTILISE      format 9999
    col LIBRE         format 999999999999
    col %LIBRE        format 9999
    col %UTIL_MAXSIZE format 999
    col DISPO_MAXSIZE format 999999
    
    select   'YES '||ddf.TABLESPACE_NAME "EXT  TS",
             ddf.BYTES/1024 "TAILLE",
             (ddf.BYTES-DFS.BYTES)/1024 "UTILISE",
             round(((ddf.BYTES-dfs.BYTES)/ddf.BYTES)*100,2) "%UTILISE",
             dfs.BYTES/1024 "LIBRE",
             round((1-((ddf.BYTES-dfs.BYTES)/ddf.BYTES))*100,2) "%LIBRE",
             F."%UTIL_MAXSIZE" "%UTIL_MAXSIZE",
             F.DISPO_MAXSIZE "DISPO_MAXSIZE"
    from    (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_data_files
             group  by TABLESPACE_NAME) ddf,
            (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_free_space
             group  by TABLESPACE_NAME) dfs,
            (select TABLESPACE_NAME,
                    ROUND(100*SUM(BYTES)/SUM(MAXBYTES)) "%UTIL_MAXSIZE",
                    ROUND((SUM(MAXBYTES)-SUM(BYTES))/1048576) "DISPO_MAXSIZE"
             from DBA_DATA_FILES
             where AUTOEXTENSIBLE ='YES'
             group by TABLESPACE_NAME) F
    where    ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME and
             F.TABLESPACE_NAME=dfs.TABLESPACE_NAME
    union
    (
    (
    select   'NO  '||ddf.TABLESPACE_NAME "EXT  TS",
             ddf.BYTES/1024 "TAILLE",
             (ddf.BYTES-DFS.BYTES)/1024 "UTILISE",
             round(((ddf.BYTES-dfs.BYTES)/ddf.BYTES)*100,2) "%UTILISE",
             dfs.BYTES/1024 "LIBRE",
             round((1-((ddf.BYTES-dfs.BYTES)/ddf.BYTES))*100,2) "%LIBRE",
             0 "%UTIL_MAXSIZE",
             0 "DISPO_MAXSIZE"
    from    (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_data_files
             group  by TABLESPACE_NAME) ddf,
            (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_free_space
             group  by TABLESPACE_NAME) dfs,
            (select TABLESPACE_NAME
             from DBA_DATA_FILES
             where AUTOEXTENSIBLE ='NO'
             group by TABLESPACE_NAME) F
    where    ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME and
             F.TABLESPACE_NAME=dfs.TABLESPACE_NAME
    )
    minus
    (
    select   'NO  '||ddf.TABLESPACE_NAME "EXT  TS",
             ddf.BYTES/1024 "TAILLE",
             (ddf.BYTES-DFS.BYTES)/1024 "UTILISE",
             round(((ddf.BYTES-dfs.BYTES)/ddf.BYTES)*100,2) "%UTILISE",
             dfs.BYTES/1024 "LIBRE",
             round((1-((ddf.BYTES-dfs.BYTES)/ddf.BYTES))*100,2) "%LIBRE",
             F."%UTIL_MAXSIZE" "%UTIL_MAXSIZE",
             F.DISPO_MAXSIZE "DISPO_MAXSIZE"
    from    (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_data_files
             group  by TABLESPACE_NAME) ddf,
            (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_free_space
             group  by TABLESPACE_NAME) dfs,
            (select TABLESPACE_NAME,
                    ROUND(100*SUM(BYTES)/SUM(MAXBYTES)) "%UTIL_MAXSIZE",
                    ROUND((SUM(MAXBYTES)-SUM(BYTES))/1048576) "DISPO_MAXSIZE"
             from DBA_DATA_FILES
             where AUTOEXTENSIBLE ='YES'
             group by TABLESPACE_NAME) F
    where    ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME and
             F.TABLESPACE_NAME=dfs.TABLESPACE_NAME
    )
    );
    exit;
    EOF
    do
            occupe=`echo $i|cut -d ' ' -f 7`
            if [[ $occupe -gt $crit ]]
            then
                    echo -n "Critical : " >> $RETURN_FILE
                    echo -n  $i|cut -d ' ' -f 2,7 >> $RETURN_FILE
            elif [[ $occupe -gt $warn ]]
            then
                    echo -n "Warning : " >> $RETURN_FILE
                    echo $i|cut -d ' ' -f 2,7 >> $RETURN_FILE
            fi
    done)
    cat $RETURN_FILE|tr \\n " "
    if grep -q Critical $RETURN_FILE
    then
            EXIT=$STATE_CRITICAL
    elif grep -q Warning $RETURN_FILE
    then
            EXIT=$STATE_WARNING
    else
            echo "Ok"
            EXIT=$STATE_OK
    fi
    
    rm $RETURN_FILE
    exit $EXIT

    Leave a comment:


  • lowdata
    replied
    Bon et bien merci de l'aide mais ca n'avance pas, quand je lance le script il ne se passe rien.....
    ./space_oracle.sh -oranames 192.168.93.33
    Usage : todo usage


    J'ai modifié la variable ORACLE_HOME, LOGIN et PASS. Je dois modifier autre chose dans le script ? ? (tnsnames.ora je ne le trouve pas sur le server oracle, et retour.tmp est censé etre un fichier de log ? apres execution du script je n'ai rien dedans.)

    Si tu pourrais m'en dire un peu plus ^^. merci d'avance;
    Last edited by lowdata; 3 September 2007, 14:01.

    Leave a comment:


  • Poulpatine
    replied
    La machine de supervision ne contient qu'un client oracle, le serveur oracle est à part. et à part oreon ( ses pré-requis ) et le client oracle je n'ai rien de spécial d'installé sur le serveur.

    Leave a comment:


  • lowdata
    replied
    et bien tjs le meme msg :

    Code:
    Cannot determine ORACLE_HOME for sid ora_server
    Alors que dans le .profile du server oracle, c'est bien la meem variable renseignée que celle dans le script check_oracle :/

    Tu as Oracle XE ou quelle appli ki tourne sur ta machine oreon ?
    Sur ton server oracle tu as modifié quelque chose ou t'as rien touché dessus ?

    Leave a comment:


  • Poulpatine
    replied
    Après je ne sais pas comment ton client Oracle est configuré mais je sais que le mien nécessite la présence d'un fichier tnsnames.ora. ( mais rien ne t'empeche de virer le bloc sur la vérification du tnsname ).

    sinon le script s'utilise de la manière suivant :

    ./oracle_space.sh -H SERVERTNSNAME -w 80 -c 95

    -H le serveur oracle
    - w le seuil de remplissage d'avertissement
    -c le seuil de remplissage critique
    Last edited by Poulpatine; 31 August 2007, 11:19.

    Leave a comment:


  • lowdata
    replied
    ok merci....

    Dans le script j'ai juste modifié la variable ORACLE_HOME....
    - Je suis obligé d'avoir la variable TNSNAMES si je veux juste lister mes tablesspaces ou l'espace restant ? (car je ne trouve pas ce fichier sur mon serv oracle...)
    - Y'a t il autre chose a modifier dans ton script pour qu il s adapte a mon server ?
    - Enfin quelle commande lance tu pour executer ce sript ? quelle en ait la syntaxe koi... Merci d'avance de ton aide.

    Leave a comment:


  • Poulpatine
    replied
    Salut.


    Dans le plugin suivant tu devrais trouver de quoi te dépanner ( la requete retourne entre autres, l'espace restant ).
    Code:
    #!/bin/bash
    #
    # Test de tablespaces
    #
    #
    export IFS='^M' # on ne traite pas les espaces comme des retours chariot
    export ORACLE_HOME=/opt/oracle/product/10.2.0/client_1
    TNSNAMES=$ORACLE_HOME/network/admin/tnsnames.ora
    LOGIN=pwet
    PASS=pwet
    STATE_OK=0
    STATE_WARNING=1
    STATE_CRITICAL=2
    STATE_UNKNOWN=3
    RETURN_FILE=/opt/oreon/log/retour.tmp
    EXIT=$STATE_UNKNOWN
    
    cat /dev/null > $RETURN_FILE
    
    if [[ $# -lt 6 ]]
    then
            echo "Usage : todo usage"
            exit $STATE_UNKNOWN
    fi
    #echo Il y a $# arguments
    while getopts w:c:H:h option
    do
     case $option in
      w)
       warn=$OPTARG
       ;;
      c)
       crit=$OPTARG
       ;;
      H)
       host=$OPTARG
       ;;
      *)
       echo "Todo : usage"
       exit $STATE_UNKNOWN
       ;;
     esac
    done
    grep -q $host $TNSNAMES
    
    if [[ $? -eq 1 ]]
    then
            echo "Hote introuvable dans tnsnames.ora"
            exit $STATE_UNKNOWN
    fi
    
    $ORACLE_HOME/bin/sqlplus -s $LOGIN/[email protected]$host <<EOF |sed -e 's/[\t]/ /g'|sed -e 's/  */ /g'|(while read i
    set pagesize 100
    set linesize 200
    set head off
    set feed off
    
    col "EXT  TS"     format A36
    col TAILLE        format 999999999999
    col UTILISE       format 999999999999
    col %UTILISE      format 9999
    col LIBRE         format 999999999999
    col %LIBRE        format 9999
    col %UTIL_MAXSIZE format 999
    col DISPO_MAXSIZE format 999999
    
    select   'YES '||ddf.TABLESPACE_NAME "EXT  TS",
             ddf.BYTES/1024 "TAILLE",
             (ddf.BYTES-DFS.BYTES)/1024 "UTILISE",
             round(((ddf.BYTES-dfs.BYTES)/ddf.BYTES)*100,2) "%UTILISE",
             dfs.BYTES/1024 "LIBRE",
             round((1-((ddf.BYTES-dfs.BYTES)/ddf.BYTES))*100,2) "%LIBRE",
             F."%UTIL_MAXSIZE" "%UTIL_MAXSIZE",
             F.DISPO_MAXSIZE "DISPO_MAXSIZE"
    from    (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_data_files
             group  by TABLESPACE_NAME) ddf,
            (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_free_space
             group  by TABLESPACE_NAME) dfs,
            (select TABLESPACE_NAME,
                    ROUND(100*SUM(BYTES)/SUM(MAXBYTES)) "%UTIL_MAXSIZE",
                    ROUND((SUM(MAXBYTES)-SUM(BYTES))/1048576) "DISPO_MAXSIZE"
             from DBA_DATA_FILES
             where AUTOEXTENSIBLE ='YES'
             group by TABLESPACE_NAME) F
    where    ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME and
             F.TABLESPACE_NAME=dfs.TABLESPACE_NAME
    union
    (
    (
    select   'NO  '||ddf.TABLESPACE_NAME "EXT  TS",
             ddf.BYTES/1024 "TAILLE",
             (ddf.BYTES-DFS.BYTES)/1024 "UTILISE",
             round(((ddf.BYTES-dfs.BYTES)/ddf.BYTES)*100,2) "%UTILISE",
             dfs.BYTES/1024 "LIBRE",
             round((1-((ddf.BYTES-dfs.BYTES)/ddf.BYTES))*100,2) "%LIBRE",
             0 "%UTIL_MAXSIZE",
             0 "DISPO_MAXSIZE"
    from    (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_data_files
             group  by TABLESPACE_NAME) ddf,
            (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_free_space
             group  by TABLESPACE_NAME) dfs,
            (select TABLESPACE_NAME
             from DBA_DATA_FILES
             where AUTOEXTENSIBLE ='NO'
             group by TABLESPACE_NAME) F
    where    ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME and
             F.TABLESPACE_NAME=dfs.TABLESPACE_NAME
    )
    minus
    (
    select   'NO  '||ddf.TABLESPACE_NAME "EXT  TS",
             ddf.BYTES/1024 "TAILLE",
             (ddf.BYTES-DFS.BYTES)/1024 "UTILISE",
             round(((ddf.BYTES-dfs.BYTES)/ddf.BYTES)*100,2) "%UTILISE",
             dfs.BYTES/1024 "LIBRE",
             round((1-((ddf.BYTES-dfs.BYTES)/ddf.BYTES))*100,2) "%LIBRE",
             F."%UTIL_MAXSIZE" "%UTIL_MAXSIZE",
             F.DISPO_MAXSIZE "DISPO_MAXSIZE"
    from    (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_data_files
             group  by TABLESPACE_NAME) ddf,
            (select TABLESPACE_NAME,
                    sum(BYTES) bytes
             from   dba_free_space
             group  by TABLESPACE_NAME) dfs,
            (select TABLESPACE_NAME,
                    ROUND(100*SUM(BYTES)/SUM(MAXBYTES)) "%UTIL_MAXSIZE",
                    ROUND((SUM(MAXBYTES)-SUM(BYTES))/1048576) "DISPO_MAXSIZE"
             from DBA_DATA_FILES
             where AUTOEXTENSIBLE ='YES'
             group by TABLESPACE_NAME) F
    where    ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME and
             F.TABLESPACE_NAME=dfs.TABLESPACE_NAME
    )
    );
    exit;
    EOF
    do
            occupe=`echo $i|cut -d ' ' -f 7`
            if [[ $occupe -gt $crit ]]
            then
                    echo -n "Critical : " >> $RETURN_FILE
                    echo -n  $i|cut -d ' ' -f 2,7 >> $RETURN_FILE
            elif [[ $occupe -gt $warn ]]
            then
                    echo -n "Warning : " >> $RETURN_FILE
                    echo $i|cut -d ' ' -f 2,7 >> $RETURN_FILE
            fi
    done)
    cat $RETURN_FILE|tr \\n " "
    if grep -q Critical $RETURN_FILE
    then
            EXIT=$STATE_CRITICAL
    elif grep -q Warning $RETURN_FILE
    then
            EXIT=$STATE_WARNING
    else
            echo "Ok"
            EXIT=$STATE_OK
    fi
    
    rm $RETURN_FILE
    exit $EXIT
    C'est pas encore fini mais un peu plus propre ( et ça à l'air de pas mal marcher ). ( merci mon DBA pour la requête ).
    Last edited by Poulpatine; 31 August 2007, 10:41.

    Leave a comment:

Working...
X