Khá tương tự bash script cũ về PHP, Mysql, Nginx, phiên bản này sẽ kiểm tra Disk, CPU, RAM sau đó gửi thông báo tới Telegram nếu sử dụng tới ngưỡng quy định
Đầu tiên là tạo 1 con chat bot Telegram, ví dụ
- Bot Token 6360723418:AAF1aya50fEi6sVuOwhXp53Ic19siP3gqLc
- Chat ID 489842537″
Tạo 1 file bash bên trong /usr/local/bin/
, có thể đặt tên là monitor_cpu_ram_hdd.sh
touch /usr/local/bin/monitor_cpu_ram_hdd.sh nano /usr/local/bin/monitor_cpu_ram_hdd.sh
Nội dung bên trong điền vào
#!/bin/bash while true do # Set the threshold for disk, CPU, and RAM usage DISK_THRESHOLD=80 # in % CPU_THRESHOLD=80 # in % RAM_THRESHOLD=80 # in % # Set the Telegram bot token and chat ID TELEGRAM_BOT_TOKEN="6360723418:AAF1aya50fEi6sVuOwhXp53Ic19siP3gqLc" TELEGRAM_CHAT_ID="489842537" # Check disk usage and send a warning if it exceeds the threshold disk_usage=$(df -h / | awk '/\// {print $(NF-1)}' | sed 's/%//') if [ "$disk_usage" -ge "$DISK_THRESHOLD" ]; then message="WARNING: Disk usage is at ${disk_usage}% - Disk threshold $DISK_THRESHOLD %" curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" -d "chat_id=${TELEGRAM_CHAT_ID}" -d "text=$message" fi # Check CPU usage and send a warning if it exceeds the threshold cpu_usage=$(top -b -n 1 | awk '/^%Cpu/ {print $2}' | cut -d '.' -f 1) if [ "$cpu_usage" -ge "$CPU_THRESHOLD" ]; then message="WARNING: CPU usage is at ${cpu_usage}% - CPU threshold $CPU_THRESHOLD %" curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" -d "chat_id=${TELEGRAM_CHAT_ID}" -d "text=$message" fi # Check RAM usage and send a warning if it exceeds the threshold ram_usage=$(free | awk '/^Mem/ {print $3/$2 * 100.0}' | cut -d '.' -f 1) if [ "$ram_usage" -ge "$RAM_THRESHOLD" ]; then message="WARNING: RAM usage is at ${ram_usage}% - RAM threshold $RAM_THRESHOLD %" curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" -d "chat_id=${TELEGRAM_CHAT_ID}" -d "text=$message" fi sleep 1 done
- Sửa dòng 6, 7, 8, 11, 12 cho phù hợp với bot Telegram và ngưỡng bạn muốn thông báo (mình đang duy trì Disk, CPU, RAM ở ngưỡng 80%)
- Sửa xong thì Ctrl+O -> Enter -> Ctrl+X để save và exit.
Ý nghĩa của đoạn code trên là nó cứ check tình trạng của Disk, CPU, RAM
- Nếu Disk, CPU, RAM sử dụng < 80% thì không làm gì
- Nếu Disk, CPU, RAM sử dụng > 80% thì gửi thông báo tới Telegram
- Chạy xong thì ngừng 1s, sau đó chạy lại từ đầu 😀
Tiếp theo chạy các dòng code bên dưới để nó tự chạy ngầm và tự chạy lại sau khi reboot VPS
chmod +x /usr/local/bin/monitor_cpu_ram_hdd.sh nohup /usr/local/bin/monitor_cpu_ram_hdd.sh >> ./out 2>&1 <&- & crontab -l > monitor_service_cpu_ram_hdd echo "@reboot nohup /usr/local/bin/monitor_cpu_ram_hdd.sh >> ./out 2>&1 <&- &" >> monitor_service_cpu_ram_hdd crontab monitor_service_cpu_ram_hdd
Đoạn code này tác giả không quản lý giới hạn thông báo, nên nếu Disk, CPU, RAM sử dụng vượt ngưỡng là cứ liên tục gửi tin nhắn, khá lú người 😀
Có các tool monitor theo thời gian thực như này nếu VPS gặp lỗi cũng dễ bắt bệnh hơn
Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.
• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.
• ✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!