Forum Programmation.shell Une ligne par enregistrement dans BDD Oracle

Posté par  .
Étiquettes : aucune
0
30
oct.
2006
Bonjour à tous.
Voilà je suis sous AIX et je dois faire des modification sur un script KSH qui vérifie l'espace disponible sur mes disques. Ce script doit ensuite renvoyé ce qu'il a trouvé dans une base Oracle par le bias de
la fonction RAISE_ALARM

Jusque là tout fonctionne parfaitement, mais j'aurais aimé que chaque ligne de mon retour DF -K soit un enregistrement dans ma base.
Pour le moment toutes mes valeur se retrouve dans un seul champ

Pourriez vous m'aider quand à la procédure à suivre ?
Merci d'avance !!!

Voilà ce que j'ai pour le moment....

#!/bin/ksh
# Check if all DEV devices have a free space under 60%
capacity=`df -k | grep dev | awk '$4+0 > 60 && NR > 1'`

# Export the result in the df.log file
echo "$capacity" > df.log


# PURPOSE: Raise an alarm by writing an entry in AGT_ALARM_ITEM of ONAIR schema
#---------------------------------------------------------------------
raise_alarm () {
# calling sqlplus
APPLICATION_NAME='Checking the disk memory'
PROGRAM_NAME='df.ksh'
ERROR_MSG='Disk free space error'
HOSTNAME=`hostname`
USERID=ERTERTERT
sqlplus -s $USERID << EOF
WHENEVER SQLERROR EXIT 1
INSERT INTO AGT_ALARM_ITEM (xid,code,id,host,application_name,message,issue_time_gmt,expiry_time_gmt,is_solved)
VALUES (AGT_ALARM_ITEM_SEQ.NEXTVAL,'GEN-010','$PROGRAM_NAME','$HOSTNAME','$APPLICATION_NAME','$capacity',SYSDATE,SYSDATE+7,0);
COMMIT;
EXIT
EOF
}

if [ `sed -n 1p df.log | wc -w` -eq 0 ]
then
echo "no problemo"
else
raise_alarm
fi
  • # RESOLVED

    Posté par  . Évalué à 1.

    J'ai résolu mon problème...
    Si ça peut servir, il suffit de modifier la condition en fin de script comme suit:

    Excusez moi du dérangement ;)

    if [ `sed -n 1p df.log | wc -w` -eq 0 ]
    then
    echo "no problemo"
    else
    cat df.log |&
    while read -p ligne
    do
    raise_alarm
    done
    fi

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.