ข้อเสนอแนะใด ๆ ที่ฉันจะปรับปรุงสคริปต์นี้ได้อย่างไร เราได้รับการตอบกลับ 200 ครั้ง แต่เซิร์ฟเวอร์ไม่ได้รีสตาร์ททุกครั้ง
#!/bin/bash
ถ้า [[ $EUID -ne 0 ]]; แล้ว
echo "สคริปต์นี้ต้องรันในฐานะรูท"
ทางออก 1
ไฟ
ถ้า [[ -f /etc/maintenance ]]; แล้ว
echo "ในโหมดบำรุงรักษา : ข้ามการทำงาน"
ทางออก 0
ไฟ
ถ้า [[ $(curl -m 2 -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8080/statusCheck.page) -ne '200' ]]; แล้ว
echo "[$(วันที่)](server20): เซิร์ฟเวอร์ล่ม!" >> /etc/check.log
THISTIME=`วันที่ +%s`
ถ้า [[ ! -f /etc/LAST_DOWN20.chk ]]; แล้ว
echo $(วันที่) > /etc/LAST_DOWN20.chk
ไฟ
TIMESTRING=`cat /etc/LAST_DOWN20.chk`
LASTTIME=`วันที่ +%s -d "${TIMESTRING}"`
ถ้า [[ -f /etc//LAST_RESTART20.chk ]]; แล้ว
TIMESTRING=`แมว /etc/LAST_RESTART20.chk`
LASTRESTART=`วันที่ +%s -d "${TIMESTRING}"`
อื่น
LASTRESTART=$เวลานี้
ไฟ
ELAPSED=`expr "${THISTIME}" - "${LASTTIME}"`
ถ้า [ "$ELAPSED" -gt 120 ]; แล้ว
ถ้า [[ -f /etc/LAST_RESTART20.chk ]]; แล้ว
TIMESTRING=`แมว /etc/LAST_RESTART20.chk`
LASTRESTART=`วันที่ +%s -d "${TIMESTRING}"`
อื่น
LASTRESTART="0"
ไฟ
ELAPSED=`expr "${THISTIME}" - "${LASTRESTART}"`
ถ้า [ "$ELAPSED" -gt 300 ]; แล้ว
echo $(วันที่) > /etc/LAST_RESTART20.chk
สัมผัส /etc//การบำรุงรักษา
/etc//dump_server20.sh
/etc//force_kill_server20.sh
rm /etc//การบำรุงรักษา
echo "[$(date)](server20): Server Restart!" >> /etc/check.log
ไฟ
ไฟ
อื่น
ถ้า [[ -f /etc/LAST_DOWN20.chk ]]; แล้ว
rm /etc/LAST_DOWN20.chk
ไฟ
echo "[$(วันที่)](server20): เซิร์ฟเวอร์ตกลง!" >> /etc//check.log
ไฟ