Script Auto Restart Service หากตรวจพบว่าไม่ทำงาน

บางครั้ง Service ที่เราสั่งให้ทำงานบน Server เช่น httpd ของ Apache หรือ mysql ดันหยุดทำงานไปซะดื้อๆ ซึ่งเป็นผลจาก Service error เอง หรือเกิดโหลดสูงบน Server จน Service ค้างทำให้ระบบที่เราใช้งานมีปัญหาไม่สามารถทำงานได้อย่างปกติ เราสามารถแก้ไขปัญหานี้ได้โดยใช้ Script ตรวจสอบและ Restart service ขึ้นมาใหม่ครับ


#!/bin/bash

# Hostname
URL="http://google.com"

# MySQL
USER="da_admin"
PASSWD=$(grep "^passwd=" /usr/local/directadmin/conf/mysql.conf | cut -d= -f2)

# CMD
WORK="200"
NGINX=$(curl --write-out %{http_code} --silent --output /dev/null $URL)
HTTPD=$(curl --write-out %{http_code} --silent --output /dev/null $URL':8085')
mysql --user="${USER}" --password="${PASSWD}" -e exit 2>/dev/null
SQLSTATUS=`echo $?`

# Auto restart nginx
if [ $NGINX -ne $WORK ]; then
echo Nginx response code $NGINX
/etc/init.d/nginx restart
fi;

# Auto restarrt httpd
if [ $HTTPD -ne $WORK ]; then
echo Nginx response code $NGINX
/etc/init.d/httpd restart
fi;

if [ $SQLSTATUS -ne "0" ]; then
echo MySQL is down!
/usr/bin/killall mysqld
/etc/init.d/mysqld restart
fi;


หลังจากสร้าง Script แล้วก็สามารถนำไปใส่ให้ chmod +x แล้วนำไปใส่ crontab ตั้งเวลาให้ทำงานอัตโนมัติได้เลยครับ

Was this answer helpful?

 Print this Article

Also Read

การปิด Public Recursion ของ Bind DNS เพื่อป้องกัน DNS Amplification Attack

DNS Amplification Attack เป็นการโจมตี DDoS รูปแบบนึงที่เป็นที่นิยมแพร่หลายมากในปัจจุบัน...

ติดตั้ง Mod_Evasive เพื่อป้องกัน DDOS Attack

ssh เข้า root แล้วไปที่ # cd /usr/local/directadmin/custombuild # wget...

วิธีตรวจสอบ PHP Version

การตรวจสอบ PHP Version คือการตรวจสอบข้อกำหนดของ PHP Version ที่เราให้บริการนั้นตรงกับ Scrip...

เปลี่ยนวันเวลาบนลีนุกซ์ด้วยคำสั่ง date

วันเวลาบนลีนุกซ์ถือเป็นเรื่องสำคัญ ที่สมควรจะตั้งให้ตรงกับเวลามาตรฐาน ไม่เช่นนั้น โปรแกรมต่างๆ...

การเปลี่ยน Host Name ใน RHEL และ CentOS

ก่อนเปลี่ยนแปลงแนะนำให้ตรวจสอบสถานะ hostname ปัจจุบันก่อนครับด้วยคำสั่ง hostname...