Bash Script ile database ayakta mı kontrolu yapmak

Bash Script ile database ayakta mı kontrolü yapmak

Bash script ile oracle database’imiz ayakta mı kontrolü yapalım, her 10 dakikada bir database’e bağlanıp instance durumunu kontrol edip bize bilgi maili göndersin.Her 10 dakikada bir çalışması için unix sistemlerde crontabı kullanacağız.Aslında alert mekanizması için Enterprise Manager ya da Grid Control üzerinden metricler set etmek daha yerinde bir çözüm olacaktır.Ama bunu yapamıyorsanız bu basit script de işinize yarayabilir.

Bir dizine database_status.sh adında bi dosya olusturalım.
Aşağıdakileri kendi sisteminize göre düzenleyerek kaydedin.

Ortamlar:
Solaris 10
Oracle 11.2.0.4

database_status.sh içeriği.

#!/bin/ksh
export ORACLE_HOME=/oracle/app/product/11.2.0.4/db
export PATH=$PATH:$ORACLE_HOME/bin
export MAIL="omer@omeracar.com.tr"
export CMAIL="omer@omeracar.com.tr"
export TM1=`date '+%T'`
 
if sqlplus user/password@mxdev < /dev/null | grep 'Connected to'; then
   echo "Basarili..$TM1"
   # echo "Mxdev baglantisi Basarili.." | mailx -c $CMAIL -s "Mxdev Calisiyor.. $TM1" $MAIL
else
   echo "Basarisiz.."
   echo "Mxdev baglantisi basarisiz oldu, kontrol ediniz.." | mailx -c $CMAIL -s "Mxdev Calismiyor $TM1" $MAIL
fi

Scriptimizi kaydedip çıktık, şimdi scriptimize execute yetkisi verelim.

-bash-3.2$ chmod u+x /export/home/oracle/orascripts/database_status.sh

Şimdide her 10 dakikada bir çalışması için scriptimizi crontaba ekleyelim.
00,10,20,30,40,50 her saat bu dakikalarda çalışması içi yazdığımız bir syntax.
(*/10 syntaxı linuxda gecerlidir.Solaris de yanyana dakikaları yazmak lazım.)

-bash-3.2$ crontab -e
00,10,20,30,40,50 * * * * /export/home/oracle/orascripts/database_status.sh

Ve işlem tamamdır, scriptimiz her 10 dakikada bir çalışacak ve database’imiz ayakta değilse
bilgi maili atacak.

Umarım faydalı olur..

Tagged: , , , , , , ,

1 comment

  1. Buse Akçay 21 Ekim 2015 at 12:15 Reply

    Hocam merhaba, örneğiniz çok güzel teşekkürler, ama biraz daha farklı bir şey yapmak istiyorum. Lock bilgisini gösteren bir script hazırlamaya çalışıyorum ama connection kısmında hata aldım, size mail attım yardımcı olabilir misiniz, nerede hata yapıyorum.
    Teşekkürler..

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir