Quay lại blog
Tháng Một 13, 2026Hướng dẫn

Cách cấu hình sao lưu tự động trên máy chủ Linux

Hướng dẫn từng bước về việc thiết lập các tập lệnh sao lưu tự động bằng cách sử dụng các tác vụ cron cho tệp và cơ sở dữ liệu.

Cách cấu hình sao lưu tự động trên máy chủ Linux

Sao lưu thường xuyên là điều cần thiết để bảo vệ dữ liệu của bạn. Hướng dẫn này chỉ cho bạn cách thiết lập sao lưu tự động cho các tệp và cơ sở dữ liệu của mình bằng cách sử dụng các tập lệnh shell và các tác vụ cron trên máy chủ Hiddence của bạn.

Tạo tập lệnh sao lưu

Tạo một tập lệnh sao lưu cho các tệp của bạn:

bash
sudo nano /usr/local/bin/backup.sh
#!/bin/bash
BACKUP_DIR="/backups"
SOURCE_DIR="/var/www"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz $SOURCE_DIR
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/backup.sh

Thiết lập tác vụ Cron

Lập lịch sao lưu tự động bằng cron:

bash
sudo crontab -e
# Thêm dòng này để chạy sao lưu hàng ngày lúc 2 giờ sáng
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Tập lệnh sao lưu cơ sở dữ liệu

Tạo tập lệnh sao lưu cơ sở dữ liệu MySQL:

bash
sudo nano /usr/local/bin/db_backup.sh
#!/bin/bash
BACKUP_DIR="/backups/db"
DB_NAME="your_database"
DB_USER="root"
DB_PASS="your_password"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/db_backup_$DATE.sql
gzip $BACKUP_DIR/db_backup_$DATE.sql
find $BACKUP_DIR -name "db_backup_*.sql.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/db_backup.sh

Lưu trữ sao lưu từ xa

Sao chép các bản sao lưu sang máy chủ từ xa bằng rsync hoặc SCP:

bash
#!/bin/bash
BACKUP_DIR="/backups"
REMOTE_HOST="backup-server.com"
REMOTE_USER="backup"
REMOTE_DIR="/backups"
rsync -avz -e ssh $BACKUP_DIR/ $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/

Chính sách lưu giữ bản sao lưu

Cấu hình việc lưu giữ để giữ các bản sao lưu trong khoảng thời gian cụ thể:

bash
# Giữ các bản sao lưu hàng ngày trong 7 ngày
find /backups -name "backup_*.tar.gz" -mtime +7 -delete

# Giữ các bản sao lưu hàng tuần trong 4 tuần
find /backups/weekly -name "backup_*.tar.gz" -mtime +28 -delete

# Giữ các bản sao lưu hàng tháng trong 12 tháng
find /backups/monthly -name "backup_*.tar.gz" -mtime +365 -delete

Các phương pháp sao lưu tốt nhất

  • Thường xuyên kiểm tra việc phục hồi bản sao lưu
  • Lưu trữ các bản sao lưu ở nhiều vị trí
  • Mã hóa dữ liệu sao lưu nhạy cảm
  • Theo dõi nhật ký sao lưu để tìm lỗi
  • Tài liệu hóa các quy trình sao lưu của bạn
  • Thiết lập cảnh báo cho các lỗi sao lưu