Bash Scripting: Autokiller MySQL PID

Well, kali ini EYD coba membuat skrip yang mudah-mudahan berguna untuk menjaga load mysql process tetap stabil dan meminimalisir kendala yang sering ditemukan pada server hosting, salah satunya yakni “Too Many Connection” saat mengakses sebuah situs. Skrip ini cukup sederhana hanya menggunakan bash scripting, EYD coba di environment server hosting berbasis Debian.

Berikut skrip yang perlu dibuat, beri nama eydautokiller.sh simpan pada direktori /root/bin/eydautokiller.sh

file1=/tmp/eydfullprocess.txt
file2=/tmp/eydprocessid.txt
QRY1=$(/usr/bin/mysql -e “SELECT db,time,command,state,info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE TIME > 500 INTO OUTFILE ‘$file1′”)
QRY2=$(/usr/bin/mysql -e “SELECT CONCAT(ID,’;’) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE TIME > 500 INTO OUTFILE ‘$file2′”)

for f in `cat $file2`; do mysql -e “KILL $f”; done

if [ `ls -l $file1 | awk ‘{print $5}’` -eq 0 ]
then
>/dev/null
else
cat $file1 |mail -s “MYSQL Processlist” admin@example.com
fi

rm -rf $file1 $file2

Lalu skrip tersebut bisa dijalankan otomatis setiap 15 menit sekali menggunakan Cron.

*/15 * * * * sh /root/bin/eydautokiller.sh

Dengan skrip ini, maka skrip akan mengkill secara otomatis pid query user database MySQL yang memiliki time query di atas 500. Say goodbye to “Too Many Connection”.

Silahkan dikomentari dan semoga bermanfaat.

This entry was posted in Linux and tagged . Bookmark the permalink.

2 Responses to Bash Scripting: Autokiller MySQL PID

  1. yosha says:

    Mas Endrik…salam kenal yah. Ternyata Bro di MWN…dulu saya pernah hosting di MWN…memuaskan. Numpang untuk belajar linux juga yah Bro Endrik.

Leave a Reply

Your email address will not be published. Required fields are marked *