vi

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.

Start a Brief

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.sh

Thê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>&1

Backup 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_DIR

Thiế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 config

Cấu hình remote (ví dụ Backblaze B2):

Name: myb2
Type: b2
account: your_account_id
key: your_application_key

Script 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_name

Phụ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.

Why Anubiz Host

100% async — no calls, no meetings
Delivered in days, not weeks
Full documentation included
Production-grade from day one
Security-first approach
Post-delivery support included

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.

Anubiz Chat AI

Online