Bài 14: Backup và restore cơ bản

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.

Chốt ý nhanh

Chủ đề Điểm cần nhớ
Backup tốt Không chỉ là tạo file, mà là biết backup gì, lưu ở đâu, giữ bao lâu và restore thế nào.
Restore Nếu chưa test restore thì chưa nên gọi là backup đáng tin.
Retention Backup không có chính sách giữ/xóa sẽ sớm làm đầy disk hoặc mất kiểm soát.

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

  1. Tạo backup tar cho một thư mục lab.
  2. Restore sang thư mục khác.
  3. So sánh file nguồn và file restore.
  4. Viết kế hoạch backup cho một website nhỏ.

Phần thực hành mở rộng: biến backup thành thứ dùng được khi sự cố thật xảy ra

Rất nhiều người chỉ thấy yên tâm khi “đã có file backup”, nhưng tới lúc restore mới lộ ra file hỏng, thiếu dữ liệu hoặc quy trình quá chậm. Bài này cần ép người học nghĩ theo hướng phục hồi, không chỉ sao chép.

Lab 1: Backup một cây thư mục và xác minh nội dung

mkdir -p ~/backup-lab/source
echo 'config' > ~/backup-lab/source/app.env
echo 'hello' > ~/backup-lab/source/index.html
tar -czf ~/backup-lab/source-backup.tar.gz -C ~/backup-lab source
ls -lh ~/backup-lab/source-backup.tar.gz
tar -tzf ~/backup-lab/source-backup.tar.gz | head -20

Lab 2: Restore sang nơi khác và so sánh

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/index.html

Mục tiêu là nhìn backup như một vật cần mở ra kiểm chứng, không phải chỉ tạo xong rồi quên.

Lab 3: rsync và ý nghĩa của đồng bộ

rsync -avh ~/backup-lab/source/ ~/backup-lab/rsync-copy/
rsync -avh --delete ~/backup-lab/source/ ~/backup-lab/rsync-copy/

Hãy hiểu thật kỹ --delete trước khi dùng trong production, vì nó sẽ xóa ở đích để giống nguồn.

Lab 4: Viết chính sách backup đơn giản

Chọn một website hoặc app giả lập và tự trả lời:

  • backup file gì
  • backup database gì
  • mấy giờ chạy
  • lưu local bao lâu
  • có copy sang chỗ khác không
  • bao lâu test restore một lần

Tình huống thực tế

Một website WordPress chỉ backup code mà quên uploads và database thì gần như vô nghĩa. Một hệ thống khác backup đầy đủ nhưng để trên cùng ổ production, tới lúc disk chết thì mất cả bản chính lẫn bản sao.

Lỗi phổ biến

  • Có backup nhưng không có quy trình restore viết ra.
  • Không mã hóa backup chứa dữ liệu nhạy cảm.
  • Không có retention nên backup làm đầy ổ.
  • Không kiểm tra tính toàn vẹn sau khi tạo.

Kết bài

Nếu bài này làm đúng, anh sẽ bắt đầu nhìn backup như một phần của năng lực phục hồi hệ thống, chứ không phải thủ tục cho đủ. Điều quan trọng nhất không phải “có file backup”, mà là “phục hồi được trong lúc căng thẳng”. Bài tiếp theo sẽ khép phase 2 bằng monitoring và alert, tức là cách phát hiện vấn đề đủ sớm để còn kịp hành động.

Tác giả: Mạnh Hoàng

Tôi là Hoàng Mạnh, người sáng lập blog SysadminSkills.com. Tôi viết về quản trị hệ thống, bảo mật máy chủ, DevOps và cách ứng dụng AI để tự động hóa công việc IT. Blog này là nơi tôi chia sẻ những gì đã học được từ thực tế – đơn giản, ngắn gọn và áp dụng được ngay.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *