Xin chào! Cảm ơn bạn
đã ghé thăm Blog của tôi.
Xin chào! Cảm ơn bạn
đã ghé thăm Blog của tôi.
Để viết một script kiểm tra trạng thái hoạt động của MySQL và gửi thông báo qua Telegram khi MySQL bị Down, chúng ta có thể sử dụng các công cụ như systemctl, mysqladmin và curl, cùng với việc sử dụng Telegram Bot API để gửi thông báo. Sau đây là một script đơn giản để thực hiện các tác vụ này:
Đầu tiên các bạn hãy tạo Bot Telegram để nhận thông báo về trạng thái hoạt động của MySQL, nếu chưa biết cách tạo bạn có thể tham khảo bài viết bên dưới
– Hướng dẫn tạo Bot Telegram vô cùng đơn giản
Bạn tạo một file ví dụ tên check_mysql_status.sh như sau:
vi check_mysql_status.sh ### Tạo và chỉnh sửa FIle
Thêm script sau vào và save lại.
#!/bin/bash
# Thay đổi các thông số này cho phù hợp với MySQL và Telegram Bot của bạn
MYSQL_USER="YOUR_MYSQL_USER"
MYSQL_PASSWORD="YOUR_MYSQL_PASSWORD"
TELEGRAM_BOT_TOKEN="YOUR_BOT_TOKEN"
TELEGRAM_CHAT_ID="YOUR_CHAT_ID"
# Kiểm tra trạng thái của MySQL bằng systemctl
if systemctl is-active mysql.service > /dev/null; then
# Nếu MySQL đang hoạt động, kiểm tra kết nối tới MySQL bằng mysqladmin
if mysqladmin ping -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" > /dev/null 2>&1; then
# Nếu kết nối tới MySQL thành công, không làm gì cả
exit 0
fi
fi
# Nếu MySQL không hoạt động hoặc kết nối tới MySQL thất bại, gửi thông báo tới Telegram
MESSAGE="MySQL is down!"
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
-d chat_id="${TELEGRAM_CHAT_ID}" \
-d text="${MESSAGE}"
Trong đó:
MYSQL_USER và MYSQL_PASSWORD: là tên người dùng và mật khẩu để kết nối tới MySQL. (Bạn có thể điền thông tin root Mysql)TELEGRAM_BOT_TOKEN: là mã token của bot Telegram của bạn.TELEGRAM_CHAT_ID: là ID của cuộc trò chuyện (chat) mà bạn muốn gửi thông báo đến. Bạn có thể lấy ID này bằng cách gửi tin nhắn cho bot của mình và sử dụng API để lấy chat ID.
chmod +x check_mysql_status.sh ### Phân quyền thực thi File
Sau khi chỉnh sửa các thông số trên, bạn có thể thực thi nó định kỳ bằng cách sử dụng cron. Ví dụ, để chạy script này mỗi 10 phút, bạn có thể thêm một dòng sau vào crontab của bạn (bằng cách chạy lệnh crontab -e):
*/10 * * * * /path/to/check_mysql_status.sh >/dev/null 2>&1
Khi MySQL Down thì bạn sẽ nhận được thông báo về Telegram như hình dưới:

Chúc các bạn thực hiện thành công.!
Chào mọi người, mình là Kiên – hiện đang công tác tại Phòng Kỹ thuật AZDIGI. Trong quá trình làm việc mình có cơ hội được tiếp xúc với khá nhiều các vấn đề liên quan đến Website/Hosting/VPS/Server, do đó mình viết lại các hướng dẫn này nhằm chia sẻ kiến thức, cũng như tạo một môi trường để chúng ta giao lưu và học hỏi lẫn nhau.
2026 - Website được phát truyền nội dung bởi Đàm Trung Kiên
Hãy để lại thông tin của bạn. Đội ngũ chuyên gia của chúng tôi sẽ trực tiếp phân tích nhu cầu và tư vấn giải pháp công nghệ phù hợp, tối ưu hiệu quả cho công việc của bạn hoàn toàn miễn phí.
Tìm kiếm bài viết...