Tạo Cronjob restart và reboot server và mysql khi quá tải

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