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 koan . Évalué à 1.
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.