tool backup MySQL database hàng ngày đơn giản viết bằng Bash script trên Linux
Dưới đây là một tool backup MySQL database hàng ngày đơn giản viết bằng Bash script trên Linux. Script này sẽ:
Tự động backup tất cả các database hoặc một database cụ thể.
Lưu file backup theo ngày (
YYYY-MM-DD).Xóa các bản backup cũ hơn 7 ngày để tiết kiệm dung lượng.
🔧 1. Tạo file script: mysql_backup.sh#
` #!/bin/bash
Cấu hình
DB_USER="root" DB_PASSWORD="your_password" DB_NAME="your_database" # Để backup tất cả DB, thay bằng --all-databases BACKUP_DIR="/var/backups/mysql" DATE=$(date +%F) RETENTION_DAYS=7
Tạo thư mục backup nếu chưa tồn tại
mkdir -p "$BACKUP_DIR"
Tên file backup
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz"
Thực hiện backup
mysqldump -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" | gzip > "$BACKUP_FILE"
Ghi log
echo "[$(date)] Backup completed: $BACKUP_FILE"
Xoá các file backup cũ hơn RETENTION_DAYS
find "$BACKUP_DIR" -name "*.sql.gz" -type f -mtime +$RETENTION_DAYS -exec rm {} ; `
✅ 2. Cấp quyền thực thi#
chmod +x mysql_backup.sh
🕒 3. Thiết lập cron job để chạy hàng ngày (ví dụ: 2 giờ sáng)#
Chạy lệnh sau:
crontab -e
Thêm dòng:
0 2 * * * /path/to/mysql_backup.sh >> /var/log/mysql_backup.log 2>&1
📝 Ghi chú:#
Thay
your_password,your_databasevà/path/to/mysql_backup.shtheo thực tế.Nếu muốn backup toàn bộ database, thay dòng:
mysqldump -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" | gzip > "$BACKUP_FILE"
bằng:
mysqldump -u "$DB_USER" -p"$DB_PASSWORD" --all-databases | gzip > "$BACKUP_FILE"
1 phản hồi
Bài liên quan trong #Shell
-
Shell Script: 10 Kỹ Thuật Nâng Cao Giúp Bạn Tự Động Hóa Chuyên Nghiệp!
minhdev -
Trở Thành Chuyên Gia Dòng Lệnh: 20 Kỹ Thuật Shell Nâng Cao Mà Bạn PHẢI BIẾT!
minhdev -
Shell Scripting Tự Động Hóa Mọi Việc Với Vài Dòng Code
minhdev -
Khám Phá I/O Redirection và Pipelines – Biến Bạn Thành Phù Thủy Dữ Liệu!
minhdev -
15 Lệnh Shell Nâng Cao Biến Bạn Thành "Pro" Ngay Lập Tức!
minhdev