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 รูปแบบนึงที่เป็นที่นิยมแพร่หลายมากในปัจจุบัน...

วิธีแก้ปัญหา Fatal error: Certificate verification: Not trusted บนคำสั่ง lftp

หากท่านใช้งานคำสั่ง lftp เพื่อเชื่อมต่อไปยัง FTP Server และพบว่าไม่สามารถเชื่อมต่อได้...

วิธีหาไฟล์ php.ini ว่าอยู่ที่ไหน

การแก้ไข Server ไม่วาจะเป็นการปรับแต่ง configuration optimize หรือ secure server...

วิธีแสดงจำนวน inode ที่ใช้งาน

inode คือ จำนวน file และ directory ที่ถูกสร้างขึ้นมาทั้งหมด การที่เครื่อง Server ใดๆ...

วิธีติดตั้ง MemCache บน CentOS

MemCache คือ extension ของ PHP ที่จะทำหน้าที่ลดภาระการทำงานของ Server...