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://anonyviet.com" 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