
Shell script backup database VPS gửi sang Telegram
Sơ đồ trang
Hiện tại theo như tôi theo dõi có rất nhiều khách hàng sử dụng VPS (máy chủ ảo) mặc dù họ chưa có kiến thức quản trị VPS cũng như hiểu rõ tầm quan trọng của việc quản lý và vận hành website mà chỉ đơn giản là họ tìm kiếm và làm theo hướng dẫn cài đặt script quản lý VPS hoặc cài panel rồi bỏ đấy chứ chưa biết cách quản trị thực sự, họ cũng không màn tới việc sao lưu dữ liệu định kỳ và lưu chúng vào nơi an toàn.
Trong bài viết này sẽ share cho mọi người 1 shell script giúp tự động hóa các quy trình sao lưu databse và bắn lên Telegram để dữ liệu của bạn luôn được an toàn.
Tầm Quan Trọng của Backup Database
Backup cơ sở dữ liệu là một biện pháp cần thiết để tránh mất mát dữ liệu do nhiều nguyên nhân như lỗi hệ thống, sự cố phần cứng hay thậm chí là tấn công mạng. Việc thực hiện sao lưu định kỳ không chỉ giúp bảo vệ dữ liệu mà còn đảm bảo rằng bạn có thể phục hồi lại hệ thống một cách nhanh chóng khi cần thiết.
Tự Động Hóa với Shell Script
Shell script cho phép bạn tự động hóa quy trình sao lưu, giảm thiểu thời gian và công sức cần thiết. Bạn có thể lập lịch cho script chạy tự động vào những thời điểm cụ thể, đảm bảo rằng dữ liệu luôn được sao lưu mà không cần can thiệp thủ công. Điều này không chỉ tiết kiệm thời gian mà còn giảm thiểu rủi ro do sự lơ đãng trong việc thực hiện sao lưu.
Việc gửi file backup qua Telegram là một phương pháp hiệu quả để đảm bảo rằng bạn có thể truy cập dữ liệu sao lưu mọi lúc, mọi nơi. Telegram không chỉ dễ sử dụng mà còn bảo mật, giúp bạn chia sẻ dữ liệu một cách an toàn. Khi có sự cố xảy ra, bạn có thể nhanh chóng khôi phục dữ liệu từ file backup được gửi qua ứng dụng này.
Script tự động backup database trên VPS và gửi sang telegram
Okay, vào việc chính luôn nào, đây là 1 script đơn giản để sao lưu database của 1 website đang sử dụng trên VPS, các thông tin màu đỏ là bạn cần thay đổi để script này có thể hoạt động nhé.
Bài viết liên quan
1. Tạo script có tên là backup-db.sh ở thư mục /home/ chẳng hạn
2. Mở file backup-db.sh và thêm code dưới đây vào sau đó thay đổi các thông tin cho phù hợp, BOT_TOKEN và TELEGRAM_CHAT_ID bạn xem ở cuối scrip này nhé.
3. Cho phép file backup-db.sh có quyền thực thi với lệnh chmod +x /home/backup-db.sh
4. Đi đến thư mục home với lệnh cd /home
và chạy script này với lệnh ./backup-db.sh
và xem kết quả
#!/bin/bash # Configuration section DB_USER="nhap_ten_db_user" DB_NAME="nhap_ten_db_name" DB_PASSWORD="nhap_password" BACKUP_DIR="/home/backup" DATE=$(date +%Y%m%d_%H%M%S) TELEGRAM_BOT_TOKEN="nhap_BOT_TOKEN" TELEGRAM_CHAT_ID="nhap_chat_ID" TELEGRAM_URL="https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" # Create backup directory if it does not exist mkdir -p ${BACKUP_DIR} # Backup mysqldump -u${DB_USER} -p${DB_PASSWORD} ${DB_NAME} > ${BACKUP_DIR}/${DB_NAME}_backup_${DATE}.sql # Check if backup is successful if [ $? -eq 0 ]; then echo "Backup successful: ${BACKUP_DIR}/${DB_NAME}_backup_${DATE}.sql" MESSAGE="Backup successful: ${DB_NAME} at ${DATE}" else echo "Backup failed!" MESSAGE="Backup failed for ${DB_NAME} at ${DATE}" fi # Print the message to be sent to Telegram echo "Message to send: ${MESSAGE}" # Send Telegram notification RESPONSE=$(curl -s -X POST ${TELEGRAM_URL} \ -d chat_id=${TELEGRAM_CHAT_ID} \ -d text="${MESSAGE}" \ -d parse_mode=HTML) # Print Telegram response echo "Telegram response: ${RESPONSE}" # Check if there was an error in sending the message if [[ $RESPONSE == *"\"ok\":true"* ]]; then echo "Message sent successfully!" else echo "Error sending message to Telegram!" fi
# Về BOT_TOKEN bạn có thể login vào Telegram, tìm bot BotFather và tạo cho mình 1 bot, sau đó dễ dàng lấy dc BOT_TOKEN
# Về Chat ID: Tìm chat_id của bạn bằng bạn thử chat với con bot bạn vừa tạo, sau đó truy cập vào link dưới để xem chat ID
https://api.telegram.org/botnhap_BOT_TOKEN/getUpdates
Ví dụ đầu ra như sau: thì 5293015366 chính là chat_id
{ "update_id": 784876539, "message": { "message_id": 25, "from": { "id": 5293015366, "is_bot": false, "first_name": "Vũ Trụ", "last_name": "Số", "username": "vutruweb", "language_code": "vi" }, "chat": { "id": 5293015366, "first_name": "Vũ Trụ", "last_name": "Số", "username": "vutruweb", "type": "private" }, "date": 1728531773, "text": "😂" } },
Sau khi điền các thông tin vào file script, bạn có thể cấp quyền thực thi shell với lệnh: chmod +x /home/backup-db.sh
Sau đó bạn có thể chạy script này để test với lệnh,
cd /home/ ./backup-db.sh
Nếu script chạy ngon bạn có thể lên lịch để chúng chạy tự động định kỳ mỗi ngày hoặc mỗi tuần (tuỳ theo yêu cầu)
crontab -e
sau đó nhập cron để chạy mỗi ngày hoặc mỗi tuần theo code ở dưới
# chay moi ngay luc 2h sang
0 2 * * * /home/backup-db.sh
# chay moi tuan
0 2 */7 * * /home/backup-db.sh
Ở script trên file database được lưu vào thư mục /home/backup bạn có thể thay đổi lại cho phù hợp nhé.