Thứ Ba, 8 tháng 4, 2025

Script backup tự động và gửi tin nhắn Telegram

Nội dung:
1. Script Telegram Bot + cách lấy Chat ID & Token
2. Script backup + gửi Telegram

Chi tiết:

1. Script Telegram Bot + cách lấy Chat ID & Token

Dưới đây là hướng dẫn đầy đủ và chi tiết để bạn:

✅ Tạo Telegram Bot
✅ Lấy Chat ID
✅ Cấu hình script gửi thông báo qua Telegram
✅ Dùng kèm với script backup PostgreSQL


🧭 Bước 1: Tạo Telegram Bot và lấy Token

  1. Mở Telegram, tìm bot có tên @BotFather

  2. Gõ lệnh:


    /start /newbot
  3. Nhập:

    • Tên bot (hiển thị)

    • Username bot (kết thúc bằng bot, ví dụ my_pg_bot)

  4. BotFather sẽ trả về:

    Done! Congratulations... Use this token to access the HTTP API:
    123456789:ABCDefGHIJKlmnoPQRstuVWxyz12345678

    👉 Lưu lại token đó – chính là TELEGRAM_BOT_TOKEN


🔍 Bước 2: Lấy Chat ID của bạn

  1. Mở Telegram, tìm bot bạn vừa tạo và nhấn "Start" và chát 1 số từ như Hello World

  2. Truy cập URL sau trong trình duyệt (thay bằng token của bạn):


    https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates

    👉 Ví dụ:


    https://api.telegram.org/bot123456789:ABCDefGHIJKlmnoPQRstuVWxyz12345678/getUpdates
  3. Kết quả trả về (JSON), tìm đoạn như sau:

    json

    { "update_id": 123456, "message": { "chat": { "id": 987654321, ... }, ... } }

    Chat ID của bạn là 987654321


📜 Script gửi tin nhắn Telegram (send_telegram.sh)


#!/bin/bash # === Thông tin cấu hình === BOT_TOKEN="123456789:ABCDefGHIJKlmnoPQRstuVWxyz12345678" CHAT_ID="987654321" MESSAGE="$1" # === Gửi tin nhắn === curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \ -d chat_id="$CHAT_ID" \ -d text="$MESSAGE" > /dev/null

📌 Cách dùng:


chmod +x send_telegram.sh ./send_telegram.sh "✅ Backup PostgreSQL thành công lúc $(date '+%F %H:%M')"

Tách riêng test thử OK:
curl -s -X POST "https://api.telegram.org/bot7388769861:AAGsWrHUWNW6MtQ8bdWtZ007Ey6NzNn8KsQ/sendMessage"
-d chat_id=6464545500 -d text="Gửi từ máy chủ VMWare chạy PG-12 trên PC-HPZ420 của BinhTV"


🧠 Tích hợp vào backup script:

Trong backup.sh, thêm đoạn:


# Gửi thông báo Telegram send_telegram() { curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \ -d chat_id="$TELEGRAM_CHAT_ID" \ -d text="$1" > /dev/null }

Và gọi:


send_telegram "✅ Backup PostgreSQL OK lúc $DATE" # hoặc nếu lỗi: send_telegram "❌ Backup PostgreSQL lỗi lúc $DATE"

✅ Bạn nhận được gì sau khi cấu hình xong?

  • Nhận tin tức thì trên điện thoại khi:

    • Backup thành công

    • Backup bị lỗi

    • Server gặp sự cố (nếu mở rộng)


☑️ Checklist cuối cùng

Việc cần làmTrạng thái
✅ Tạo Telegram Bot✔️
✅ Lấy token từ BotFather✔️
✅ Gửi tin nhắn thử nghiệm bằng curl✔️
✅ Lấy chat ID từ getUpdates✔️
✅ Tích hợp vào backup.sh✔️


2. Backup DB và gửi tin nhắn telegram

📁 File 1: send_telegram.sh


#!/bin/bash # Thông tin bot Telegram (thay bằng của bạn) BOT_TOKEN="7388769861:AAGsWrHUWNW6MtQ8bdWtZ007Ey6NzNn8KsQ" CHAT_ID="987654321" # 👈 Thay bằng chat_id của bạn # Nội dung tin nhắn lấy từ dòng lệnh MESSAGE="$1" # Gửi tin nhắn qua Telegram curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \ -d chat_id="$CHAT_ID" \ -d text="$MESSAGE" > /dev/null

✅ Cấp quyền chạy:


chmod +x send_telegram.sh

✅ Gửi thử:


./send_telegram.sh "✅ Bot Telegram đã hoạt động!"

📁 File 2: backup.sh – Backup toàn bộ PostgreSQL kèm thông báo


#!/bin/bash # === Cấu hình === DATE=$(date +%F_%H-%M) BACKUP_DIR="/var/backups/postgresql" LOG_FILE="$BACKUP_DIR/backup_$DATE.log" DUMP_FILE="$BACKUP_DIR/postgres_backup_$DATE.sql.gz" DB_USER="postgres" RETENTION_DAYS=7 # === Telegram config (gọi từ script phụ) === TELEGRAM_SCRIPT="./send_telegram.sh" # === Tạo thư mục backup nếu chưa có === mkdir -p "$BACKUP_DIR" # === Ghi log bắt đầu === echo "[$DATE] 🔁 Bắt đầu backup PostgreSQL..." > "$LOG_FILE" # === Thực hiện backup toàn bộ DB === pg_dumpall -U "$DB_USER" | gzip > "$DUMP_FILE" 2>> "$LOG_FILE" # === Kiểm tra kết quả backup === if [ $? -eq 0 ]; then echo "[$DATE] ✅ Backup thành công: $(basename $DUMP_FILE)" >> "$LOG_FILE" $TELEGRAM_SCRIPT "✅ PostgreSQL backup OK: $(basename $DUMP_FILE)" else echo "[$DATE] ❌ Backup thất bại!" >> "$LOG_FILE" $TELEGRAM_SCRIPT "❌ PostgreSQL backup FAILED lúc $DATE!" fi # === Xóa các file backup cũ (nếu có) === find "$BACKUP_DIR" -name "*.sql.gz" -mtime +$RETENTION_DAYS -exec rm -f {} \;

✅ Cấp quyền chạy:


chmod +x backup.sh

✅ Thêm vào cron để chạy mỗi ngày lúc 2h sáng:


crontab -e

Thêm dòng:


0 2 * * * /path/to/backup.sh

🧪 Test nhanh thủ công:


./backup.sh

👉 Kết quả:

  • Tạo file backup .sql.gz

  • Ghi log

  • Gửi tin nhắn Telegram (nếu bot/chat_id đúng)


🎯 Bạn cần làm gì?

  1. Sửa BOT_TOKEN + CHAT_ID trong send_telegram.sh

  2. Đặt 2 file này cùng thư mục

  3. Kiểm tra quyền, test thử

  4. Thêm vào cron để tự động hóa

=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master