Hướng dẫn backup và restore dữ liệu trên VPS an toàn, đơn giản

Quản trị một máy chủ ảo (VPS) đồng nghĩa với việc bạn nắm giữ tài sản số quan trọng của mình. Dữ liệu website, thông tin khách hàng, hay các ứng dụng kinh doanh đều cần được bảo vệ tuyệt đối. Một thao tác sai lầm hay một cuộc tấn công bất ngờ có thể khiến mọi thứ biến mất.

Bài viết này của InterData sẽ cung cấp một hướng dẫn toàn diện, giúp bạn làm chủ quy trình sao lưu (backup) và phục hồi (restore) VPS. Chúng tôi sẽ đi từ các phương pháp sử dụng giao diện đồ họa trực quan như DirectAdmin đến việc sử dụng dòng lệnh mạnh mẽ, và cuối cùng là tự động hóa toàn bộ quy trình.

Tại sao cần backup VPS?

Việc sao lưu VPS không phải là một lựa chọn, mà là một yêu cầu bắt buộc trong quản trị hệ thống. Dữ liệu cho thấy việc bỏ qua bước này có thể dẫn đến những hậu quả nghiêm trọng, gây gián đoạn hoạt động và thiệt hại tài chính.

backup_restore_vps

Bảo vệ dữ liệu trước sự cố

Hệ thống của bạn luôn đối mặt với những rủi ro tiềm ẩn. Ổ cứng vật lý có thể bị lỗi, các bản cập nhật phần mềm có thể gây xung đột, hoặc một lỗi cấu hình đơn giản cũng có thể khiến hệ thống không thể truy cập. Một bản backup là tấm phao cứu sinh, đảm bảo bạn có thể khôi phục lại trạng thái hoạt động ổn định gần nhất.

Phòng chống tấn công và mã độc

Các cuộc tấn công mạng, đặc biệt là mã độc tống tiền (ransomware), ngày càng trở nên tinh vi. Báo cáo “2023 Data Protection Trends Report” của Veeam chỉ ra rằng có đến 85% tổ chức đã phải chịu ít nhất một cuộc tấn công ransomware trong 12 tháng qua. Khi bị tấn công, một bản backup sạch, được lưu trữ riêng biệt, là cách duy nhất để bạn khôi phục dữ liệu mà không phải trả tiền chuộc.

An tâm khi nâng cấp, chỉnh sửa

Bạn muốn thử nghiệm một plugin mới, nâng cấp phiên bản PHP, hay tối ưu lại cấu hình máy chủ? Việc có sẵn một bản backup giúp bạn tự tin thực hiện các thay đổi. Nếu có bất kỳ điều gì không mong muốn xảy ra, bạn có thể nhanh chóng quay trở lại trạng thái ổn định trước đó chỉ trong vài phút.

Phục vụ di chuyển máy chủ (Migration)

Khi bạn muốn chuyển sang một nhà cung cấp VPS mạnh mẽ hơn hoặc di chuyển dữ liệu sang một máy chủ mới, backup là bước không thể thiếu. Quy trình này đảm bảo toàn bộ mã nguồn, cơ sở dữ liệu và các tệp cấu hình được chuyển đi một cách nguyên vẹn, giảm thiểu thời gian gián đoạn (downtime) của dịch vụ.

Hướng dẫn backup/restore VPS bằng DirectAdmin

DirectAdmin là một control panel phổ biến, cung cấp giao diện đồ họa trực quan để quản lý VPS. Phương pháp này rất phù hợp cho những người mới bắt đầu hoặc những ai không quen làm việc với dòng lệnh.

Các bước Backup trên DirectAdmin

Đăng nhập: Truy cập vào tài khoản DirectAdmin của bạn ở cấp độ người dùng (User Level).

Tìm mục Backup: Tại giao diện chính, tìm đến mục “Advanced featured” và chọn “Create/Restore Backups”.

backup_vps_directadmin_1

Lựa chọn thành phần: Giao diện sẽ hiển thị tất cả các mục bạn có thể sao lưu. Hãy tích chọn vào các thành phần quan trọng như: Website Data (toàn bộ mã nguồn), FTP, và Databases.

backup_vps_directadmin_2

Tạo Backup: Nhấn nút “Create Backup”. Hệ thống sẽ bắt đầu quá trình nén dữ liệu. Thời gian hoàn thành phụ thuộc vào dung lượng dữ liệu của bạn.

Tải về: Sau khi hoàn tất, một liên kết tải file backup (thường có định dạng .tar.gz) sẽ xuất hiện trong mục “Messages”. Bạn nên tải file này về và lưu trữ ở một nơi an toàn khác ngoài VPS.

Các bước Restore trên DirectAdmin

Upload file backup: Nếu file backup chưa có trên VPS, bạn cần sử dụng FTP hoặc trình quản lý tệp của DirectAdmin để tải file .tar.gz vào thư mục /backups.

Chọn file Restore: Truy cập lại mục “Create/Restore Backups”. Giao diện sẽ hiển thị danh sách các file backup có sẵn. Hãy chọn file bạn muốn khôi phục.

restore_vps_directadmin

Lựa chọn thành phần Restore: Bạn có thể chọn phục hồi toàn bộ hoặc chỉ một phần dữ liệu (ví dụ: chỉ phục hồi database). Hãy chọn các mục tương ứng.

Bắt đầu Restore: Nhấn nút “Restore Selected Items”. DirectAdmin sẽ tiến hành giải nén và ghi đè dữ liệu hiện tại bằng dữ liệu từ bản sao lưu. Hãy chắc chắn bạn đã chọn đúng file backup trước khi thực hiện.

Hướng dẫn backup/restore VPS bằng dòng lệnh

Đối với các quản trị viên hệ thống và lập trình viên, việc sử dụng dòng lệnh (SSH) mang lại sự linh hoạt và kiểm soát tối đa. Hai công cụ chính bạn cần sử dụng là tar để nén tệp và mysqldump để sao lưu cơ sở dữ liệu.

Backup mã nguồn website với lệnh tar

Lệnh tar giúp bạn đóng gói và nén nhiều tệp và thư mục thành một file duy nhất. Giả sử mã nguồn website của bạn nằm tại /var/www/html, bạn có thể sử dụng lệnh sau:

tar -czvpf /root/backup/source_code_$(date +%Y-%m-%d).tar.gz /var/www/html

Lệnh này sẽ tạo một file nén trong thư mục /root/backup với tên chứa ngày tháng hiện tại, ví dụ source_code_2025-07-07.tar.gz.

Backup cơ sở dữ liệu với mysqldump

mysqldump là công cụ chuyên dụng để xuất dữ liệu từ MySQL/MariaDB ra một file .sql. Bạn cần biết tên database, user và mật khẩu. Thông tin này thường nằm trong file cấu hình của website (ví dụ: wp-config.php cho WordPress).

mysqldump -u [user_database] -p [ten_database] > /root/backup/database_$(date +%Y-%m-%d).sql

Hệ thống sẽ yêu cầu bạn nhập mật khẩu của [user_database]. Sau khi hoàn tất, bạn sẽ có một file .sql chứa toàn bộ cấu trúc và dữ liệu của database.

Hướng dẫn Restore từ dòng lệnh

Để phục hồi, bạn chỉ cần thực hiện các thao tác ngược lại. Đầu tiên, giải nén file mã nguồn vào đúng thư mục:

tar -xzvpf /root/backup/source_code_2025-07-07.tar.gz -C /

Sau đó, nhập (import) dữ liệu từ file .sql vào lại database. Lưu ý, bạn cần tạo một database trống trước khi thực hiện lệnh này.

mysql -u [user_database] -p [ten_database] < /root/backup/database_2025-07-07.sql

Tự động hóa backup với Cron Job

Việc backup thủ công có thể tốn thời gian và dễ bị bỏ quên. Cron Job là một tiện ích trên Linux cho phép bạn lập lịch thực thi các lệnh hoặc script một cách tự động, giải quyết triệt để vấn đề này.

Viết script backup đơn giản

Đầu tiên, hãy tạo một file script. Bạn có thể kết hợp các lệnh đã học ở trên vào một file duy nhất.

Mở một file mới: nano /root/backup_script.sh

Thêm nội dung sau vào file:

#!/bin/bash
# Thư mục lưu trữ backup
BACKUP_DIR="/root/backup"
# Thông tin database
DB_USER="[user_database]"
DB_PASS="[mat_khau_database]"
DB_NAME="[ten_database]"
# Đường dẫn mã nguồn
SOURCE_DIR="/var/www/html"
# Tạo tên file với ngày tháng
TIMESTAMP=$(date +%Y-%m-%d)

# Backup mã nguồn
tar -czpf $BACKUP_DIR/source_$TIMESTAMP.tar.gz $SOURCE_DIR

# Backup database
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/db_$TIMESTAMP.sql

# Xóa các bản backup cũ hơn 7 ngày
find $BACKUP_DIR/* -mtime +7 -delete

Lưu file và cấp quyền thực thi cho script: chmod +x /root/backup_script.sh.

Cài đặt Cron Job để lập lịch

Bây giờ, hãy yêu cầu hệ thống chạy script này mỗi ngày.

Mở trình soạn thảo Cron: crontab -e

Thêm dòng sau vào cuối file để lập lịch chạy script vào 3 giờ sáng mỗi ngày:

0 3 * * * /root/backup_script.sh > /dev/null 2>&1

Lưu lại file. Từ bây giờ, VPS của bạn sẽ được tự động sao lưu hàng ngày mà không cần bất kỳ sự can thiệp nào.

Để đảm bảo hệ thống của bạn luôn được bảo vệ với các bản sao lưu định kỳ và được hỗ trợ kỹ thuật chuyên nghiệp khi cần, hãy cân nhắc sử dụng các dịch vụ chất lượng cao. InterData cung cấp các gói VPS giá rẻ uy tín – Hiệu năng cao – Backup định kỳ giúp bạn an tâm phát triển dự án của mình.

Một số câu hỏi thường gặp (FAQ)

Dưới đây là câu trả lời cho những thắc mắc phổ biến nhất liên quan đến việc sao lưu và phục hồi VPS.

Nên backup VPS bao lâu một lần?

Tần suất backup phụ thuộc vào mức độ thay đổi dữ liệu trên website của bạn.

  • Website tin tức, blog, diễn đàn: Backup hàng ngày là lựa chọn tốt nhất.
  • Website giới thiệu công ty, ít thay đổi: Backup hàng tuần là đủ.
  • Trước khi thực hiện thay đổi lớn: Luôn tạo một bản backup ngay trước khi nâng cấp, cài đặt hoặc chỉnh sửa hệ thống.

Lưu trữ file backup ở đâu là an toàn nhất?

Hãy tuân thủ quy tắc backup 3-2-1: có ít nhất 3 bản sao dữ liệu, lưu trên 2 loại phương tiện lưu trữ khác nhau, và có 1 bản sao được lưu ở một nơi khác (off-site). Bạn nên tải file backup về máy tính cá nhân và tải lên một dịch vụ lưu trữ đám mây như Google Drive, Dropbox hoặc Amazon S3.

Snapshot của nhà cung cấp có thay thế được backup không?

Không hoàn toàn. Snapshot là một ảnh chụp nhanh trạng thái của toàn bộ VPS tại một thời điểm, giúp phục hồi rất nhanh. Tuy nhiên, file snapshot thường được lưu trên cùng một hạ tầng vật lý với VPS của bạn. Nếu trung tâm dữ liệu gặp sự cố, cả VPS và snapshot đều có thể bị ảnh hưởng. Backup là một file độc lập bạn có thể di chuyển đi bất cứ đâu.

File backup quá lớn, làm sao để tối ưu?

Bạn có thể giảm dung lượng file backup bằng cách loại trừ các thư mục không cần thiết như cache, logs, hoặc các file tạm. Khi sử dụng lệnh tar, bạn có thể thêm tham số --exclude để bỏ qua các thư mục này.

Làm thế nào để kiểm tra file backup có hoạt động tốt không?

Cách duy nhất để chắc chắn 100% là thực hiện phục hồi thử nghiệm. Bạn nên định kỳ (ví dụ: hàng quý) phục hồi bản backup mới nhất lên một môi trường thử nghiệm (staging environment) để đảm bảo dữ liệu toàn vẹn và có thể sử dụng được khi cần.