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

วิธีแก้ปัญหา IPv6 sending guidelines ของ Gmail

ช่วงเปลี่ยนผ่านของ IPv4 ไป IPv6 นี้ admin หลายท่านคงอาจพบปัญหากับการส่ง Mail ไปยัง Gmail...

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

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

ติดตั้ง Proxy Server โดย Squid บน CentOs

Proxy Server คืออะไร ในการเรียกใช้ข้อมูลผ่านระบบ World Wide Web (WWW) โดยปกติ...

วิธีตรวจสอบว่า Server โดนโจมตีหรือไม่

การตรวจสอบว่าเราถูกโจมตีหรือไม่ผ่านคำสั่ง netstat หลายๆ คนคงรู้วิธีใช้งาน netstat กันบ้างแล้ว...

การคัดลอก Email ระหว่าง IMAP Server

สำหรับท่านที่ประสบปัญหาการโอนย้าย Email จาก Server ที่มี Mail Server ต่างกันหรือ Control Panel...