Khi quá tải, server sẽ bị đơ , giống như việc máy tính của bạn bị đơ bình thường thôi , để khắc phục hiện tượng này , bạn có thể tạo một file check kiểm tra xem server có quá tải ko , nếu có thì khởi động lại apache . cách làm :
Bước 1: Tạo file check
Code:
cd /usr/local/
mkdir auto
cd auto
nano -w restart.sh
Dán script sau:
Code:
#!/bin/sh
check=`cat /proc/loadavg | sed ‘s/\./ /’ | awk ‘{print $1}’`
if [ $check -gt 20 ] //điền 5 cho VPS 512MB Ram, 10 cho 1GB Ram, 20 cho 2GB Ram
then
/etc/init.d/mysqld restart
fi
Lưu lại file, và chmod script về 755
Code:
chmod 755 restart.sh
Bước 2: Tạo file cron
Code:
cd ~
cd /etc/cron.d
nano -w auto_restart
Dán script sau:
Code:
*/5 * * * * root /usr/local/auto/restart.sh >/dev/null 2>&1
Lưu lại file cron để hoàn tất.
Sưu tầm !
======================================
Crontab Reboot Server: Tự động Reboot VPS khi Load Averages của CPU quá cao.
Đầu tiên phải tạo 1 file dạng rebootwhencpuhightload.sh với nội dung như dưới. Rồi lưu ở đâu cũng được, miễn nhớ đường dẫn. VD: /usr/local/auto/
#!/bin/sh
check=cat /proc/loadavg | sed 's/\./ /' | awk '{print $1}'
if [ $check -gt 9 ]
then
/sbin/reboot
fi
Lưu ý chỉ sửa con số 9 tại if [ $check -gt 9 ] thành giá trị bạn muốn. Đây là chỉ số Load Averages vượt quá thì hệ thống sẽ thực hiện lệnh reboot.
Tiếp theo là tạo 1 Cron job để Server tự định kỳ kiểm tra để Reboot.
*/3 * * * * root /usr/local/auto/rebootwhencpuhightload.sh >/dev/null 2>&1
có thể vào file cron trong var/spool/root để dán code cronjob trên sau đó thì restart nginx
- */3 * * * * : là 3 phút kiểm tra hệ thống 1 lần.
- /usr/local/auto/rebootwhencpuhightload.sh : Đường dẫn tới nơi lưu file .sh đã tạo ở phần trên.
- >/dev/null 2>&1 : Mặc đinh.
Nếu lệnh trên các bạn đang không biết phải gõ ở đâu thì tham khảo thêm bài này: https://thuthuatcaidat.com/sua-loi-no-crontab-for-root/ Đọc đoạn hướng dẫn 4 bước để tạo và lưu Crontab cục bộ với user root.
Xem log Crond đang chạy bằng lệnh: tail -f /var/log/cron