Backup VPS Tự Động: Chiến Lược Sao Lưu Dữ Liệu
Backup là bảo hiểm tốt nhất cho dữ liệu của bạn. Một VPS không có chiến lược backup là VPS đang chờ mất dữ liệu. Hướng dẫn này trình bày cách thiết lập hệ thống backup tự động cho VPS offshore AnubizHost, bao gồm backup files, database và toàn bộ server.
Need this done for your project?
We implement, you ship. Async, documented, done in days.
Backup Database MySQL Tự Động
Tạo script backup MySQL và lên lịch chạy tự động:
nano /usr/local/bin/backup-mysql.sh#!/bin/bash
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
DB_USER="backup_user"
DB_PASS="backup_password"
mkdir -p $BACKUP_DIR
# Backup tất cả databases
mysqldump -u$DB_USER -p$DB_PASS --all-databases | gzip > $BACKUP_DIR/all_databases_$DATE.sql.gz
# Xóa backup cũ hơn 7 ngày
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete
echo "Backup completed: $DATE"chmod +x /usr/local/bin/backup-mysql.shThêm vào crontab:
crontab -e
# Chạy lúc 2 giờ sáng mỗi ngày
0 2 * * * /usr/local/bin/backup-mysql.sh >> /var/log/backup.log 2>&1Backup Files Với Rsync
Rsync sao chép file hiệu quả, chỉ đồng bộ phần thay đổi:
nano /usr/local/bin/backup-files.sh#!/bin/bash
SOURCE="/var/www/"
BACKUP_DIR="/var/backups/www"
DATE=$(date +%Y%m%d)
REMOTE_USER="backup"
REMOTE_HOST="backup-server.com"
REMOTE_DIR="/backups/vps/"
# Backup local
rsync -avz --delete $SOURCE $BACKUP_DIR/
# Backup remote (cần SSH key không cần password)
rsync -avz -e "ssh -i /root/.ssh/backup_key" $SOURCE $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIRThiết lập SSH key không cần password cho remote backup:
ssh-keygen -t ed25519 -f /root/.ssh/backup_key -N ""
ssh-copy-id -i /root/.ssh/backup_key.pub [email protected]Backup Lên Cloud Với Rclone
Rclone hỗ trợ hơn 40 cloud storage provider (S3, Google Drive, Backblaze B2...):
curl https://rclone.org/install.sh | bash
rclone configCấu hình remote (ví dụ Backblaze B2):
Name: myb2
Type: b2
account: your_account_id
key: your_application_keyScript backup lên cloud:
nano /usr/local/bin/backup-cloud.sh#!/bin/bash
LOCAL_DIR="/var/backups"
REMOTE="myb2:my-backup-bucket/vps-backups"
# Upload với mã hóa
rclone sync $LOCAL_DIR $REMOTE --progress --transfers=4
echo "Cloud backup done: $(date)"Kiểm Tra và Phục Hồi Backup
Backup chưa được test là backup không đáng tin. Kiểm tra định kỳ:
# Liệt kê backup files
ls -lh /var/backups/mysql/
# Kiểm tra nội dung file backup
gunzip -c /var/backups/mysql/all_databases_20260101_020000.sql.gz | head -50
# Phục hồi database cụ thể
gunzip -c /var/backups/mysql/all_databases_20260101_020000.sql.gz | mysql -u root -p database_namePhục hồi files từ rsync backup:
rsync -avz /var/backups/www/ /var/www/ --dry-run
# Xóa --dry-run sau khi xác nhận đúng
rsync -avz /var/backups/www/ /var/www/Test phục hồi ít nhất mỗi tháng trên môi trường staging để đảm bảo backup hoạt động khi cần.
Related Services
Why Anubiz Host
Ready to get started?
Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.