Bạn Tìm Gì Hôm Nay ...?
Tất cả đều có chỉ trong 1 nốt nhạc !
Nếu cần hỗ trợ chi tiết gọi 1900 9477
Bài này mình sẽ hướng dẫn các bạn tại Script và cron job tự động khởi động lại webserver Nginx, Apache khi CPU bạn chạy Load Cao.
Nó sẽ kiểm tra 5 phút 1 lần và tự động khởi động lại Webserver khi CPU > 2.30
Bài viết mình test trên Cloud VPS CPU 2 nhân Xeon(R) CPU E5-2600, Ram 2G. OS Centos 6 64bit
Các lỗi thường gặp khi visit vào website nhiều, làm tình trạng CPU cao có có nhiều Time-Out cách này đơn giản là restart lại webserver do đó chạy sẽ mượt hơn.
cd /usr/local/ mkdir auto cd auto nano -w restart.sh
hoặc
sudo nano /home/restart.sh
Các bạn Paster đoạn sau vào:
#!/bin/bash current_load_avg=$(uptime | awk ‘{print $(NF-2)}’ | awk -F “,” ‘{print $1}’) alert_load_avg=2.30 check=$(bc <<< “$current_load_avg > $alert_load_avg”) if [ “$check” -eq 1 ]; then /etc/init.d/nginx restart > /dev/null 2>&1 echo `date` “: restart nginx. Current load is $current_load_avg” >> /opt/scripts/restart_nginx.log fi
#!/bin/bash current_load_avg=$(uptime | awk '{print $(NF-2)}' | awk -F "," '{print $1}') alert_load_avg=2.30 check=$(bc <<< "$current_load_avg > $alert_load_avg") if [ "$check" -eq 1 ]; then /etc/init.d/httpd reload > /dev/null 2>&1 echo 'date' ": restart apache. Current load is $current_load_avg" >> /var/log/restart_apache.log fi
Bấm CRT+X để ghi lại Bấm Y [Yes]. Sau đó chmod 755 file restart.sh đó
chmod 755 restart.sh
hoặc
chmod 755 /home/restart.sh
cd ~ cd /etc/cron.d nano -w auto_restart
Paste đoạn script sau:
*/5 * * * * root /usr/local/auto/restart.sh >/dev/null 2>&1
hoặc
*/5 * * * * root /home/restart.sh >/dev/null 2>&1
Bấm CRT+X để ghi lại. Done!
Với cách tạo cron này các bạn có thể áp dụng tương tự để tự làm để khởi động lại Mysql, PHP… khi gặp vấn đề nào đó.