Script tự động khởi động Nginx, Mariadb, PHP khi Web lỗi 502 Bad Gateway

Trong một số trường hợp Server bị treo dịch vụ khiến Website không hoạt động, chúng ta có thể dùng cronjob để kiểm tra, nếu Website trả về mã lỗi 502 Bad Gateway thì cho restart nginx, mariadb, php7.4-fpm. Cách thực hiện như sau:

Auto Restart Nginx, Mariadb, PHP When Website Error 502 Bad Gateway

Tạo file 502.sh với nội dung:

#!/bin/bash

CheckURL=”https://adtip.net”

STATUS_CODE=`curl -o /dev/null -m 10 –connect-timeout 10 -s -w %{http_code} $CheckURL`
echo $STATUS_CODE
if [[ “$STATUS_CODE” == ‘000’ || “$STATUS_CODE” == ‘502’ ]]; then

/usr/bin/systemctl restart nginx
/usr/bin/systemctl restart mariadb
/usr/bin/systemctl restart php7.4-fpm
echo “sap web vao luc: $(date)” >> /root/a.txt
fi

Giải thích:

  • Nếu curl trả về mã lỗi 000 hoặc 502 thì thực hiện 3 lệnh restart nginx, mariadb, php7.4-fpm
  • Đồng thời ghi lại Log lúc 3 dịch vụ này khởi động lại vào file a.txt

Hẹn giờ cứ mỗi phút 1 lần cho chạy file 502.sh để kiểm tra

Gõ lệnh để mở cronjob

EDITOR=nano crontab -e

Dán nội dung sau vào cửa sổ Terminal (mỗi phút một lần chạy file /root/502.sh

* * * * * bash /root/502.sh >/dev/null 2>&1

Nhấn Ctrl O, Enter để lưu và Ctrl X để thoát

Tut by An0nyViet