Bài 14: Backup và restore cơ bản
Bài này giúp anh hiểu backup đúng nghĩa: backup cái gì, ở đâu, giữ bao lâu và quan trọng nhất là restore được không.
Sau bài này anh sẽ biết:
- Phân biệt backup file, config, database.
- Dùng
tar,rsync, dump database. - Thiết kế retention đơn giản.
- Test restore thay vì chỉ tạo backup.
1. Backup không chỉ là copy file
Backup tốt phải trả lời: backup gì, lưu ở đâu, ai có quyền, giữ bao lâu, restore trong bao lâu và đã test chưa.
2. Những thứ thường cần backup
| Loại | Ví dụ |
|---|---|
| Config | /etc/nginx, systemd unit, env file |
| Code/app | /var/www/app |
| Database | MySQL/PostgreSQL dump |
| Upload/data | wp-content/uploads, user files |
3. Lab: backup file bằng tar
mkdir -p ~/backup-lab/source echo "hello" > ~/backup-lab/source/file.txt tar -czf ~/backup-lab/source-backup.tar.gz -C ~/backup-lab source ls -lh ~/backup-lab/source-backup.tar.gz
4. Lab: restore thử
mkdir -p ~/backup-lab/restore tar -xzf ~/backup-lab/source-backup.tar.gz -C ~/backup-lab/restore find ~/backup-lab/restore -type f -maxdepth 3 -print cat ~/backup-lab/restore/source/file.txt
5. Backup bằng rsync
rsync -avh /var/www/ /backup/var-www/ rsync -avh --delete /var/www/ /backup/var-www/
Cẩn thận:
--delete sẽ xóa file ở đích nếu nguồn không còn. Chỉ dùng khi hiểu rõ.6. Tình huống thực tế
Website WordPress cần backup database, thư mục uploads, theme/plugin tùy chỉnh và config web server. Chỉ backup code là chưa đủ.
7. Lỗi thường gặp
- Backup cùng ổ production, disk hỏng là mất cả backup.
- Không mã hóa backup chứa dữ liệu nhạy cảm.
- Không test restore.
- Không có retention nên backup làm đầy disk.
8. Checklist backup
- Xác định dữ liệu quan trọng.
- Backup ra nơi khác server chính.
- Có retention rõ: 7 ngày/4 tuần/12 tháng.
- Test restore định kỳ.
- Ghi tài liệu restore.
9. Bài tập
- Tạo backup tar cho một thư mục lab.
- Restore sang thư mục khác.
- So sánh file nguồn và file restore.
- Viết kế hoạch backup cho một website nhỏ.
Bài tiếp theo: Monitoring và alert cơ bản.
