Backup dữ liệu VPS là bước quan trọng để bảo vệ thông tin khỏi các rủi ro như sự cố phần cứng, lỗi cấu hình, hoặc tấn công mạng. Trong đó có một số cách thường dùng là sử dụng tính năng có sẵn trong bảng điều khiển của nhà cung cấp VPS hoặc tự động hóa quy trình bằng cách viết script trên VPS Linux. Trong bài viết này mình sẽ chia sẻ chi tiết từng cách thực hiện tới bạn.
Những điểm chính
- Khái niệm backup dữ liệu VPS: Hiểu rõ tầm quan trọng của việc sao lưu dữ liệu VPS và nhận biết các rủi ro tiềm ẩn có thể gây mất mát dữ liệu.
- Backup qua Control Panel: Nắm được cách sao lưu đơn giản nhất thông qua công cụ có sẵn từ nhà cung cấp VPS, phù hợp cho người mới bắt đầu.
- Tự động hóa bằng script: Nắm vững kỹ thuật nâng cao để tự động sao lưu file, thư mục và database trên VPS Linux bằng script và cron job.
- Lưu ý quan trọng: Biết được các nguyên tắc cốt lõi để bảo vệ bản sao lưu an toàn, bao gồm lưu trữ ngoài và kiểm tra khả năng khôi phục.
- Giải đáp thắc mắc cho các vấn đề thường gặp như tần suất backup, ảnh hưởng hiệu suất và cách kiểm tra tính toàn vẹn của bản sao lưu.
Backup dữ liệu VPS là gì ?
Backup dữ liệu VPS là tạo bản sao những dữ liệu quan trọng (mã nguồn, database, file cấu hình) từ máy chủ và lưu ở nơi an toàn. Đây là việc bắt buộc để phòng tránh các rủi ro như: hỏng phần cứng, lỗi phần mềm, tấn công mạng (ransomware), thao tác nhầm của người dùng, hoặc sự cố thiên tai. Backup tốt chính là nền tảng giúp bạn khôi phục hệ thống nhanh chóng khi gặp sự cố, giảm thiểu tối đa thiệt hại.

Cách 1: Backup dữ liệu VPS qua bảng điều khiển của nhà cung cấp
Phương pháp đơn giản nhất là tận dụng các công cụ có sẵn trên bảng điều khiển quản lý dịch vụ của nhà cung cấp VPS. Các bước thực hiện sao lưu VPS qua bảng điều khiển:
- Truy cập bảng điều khiển (Control Panel): Đầu tiên hãy đăng nhập vào tài khoản quản lý dịch vụ của bạn trên website của nhà cung cấp. Sau đó bạn tìm và chọn VPS cần thao tác, thường nằm trong mục Dịch vụ (Services) hoặc Quản lý VPS.
- Tìm chức năng sao lưu: Tìm đến các tùy chọn liên quan đến bảo trì hệ thống. Chức năng sao lưu thường được đặt tên là Sao lưu (Backups), Ảnh chụp nhanh (Snapshots), hoặc nằm trong mục Tính năng nâng cao (Advanced Features).
- Thực hiện tạo bản sao lưu: Nhấn vào tùy chọn để tạo bản sao lưu mới. Bạn có thể lựa chọn loại bản sao lưu, ví dụ: sao lưu toàn bộ VPS (Full Backup) hoặc chỉ sao lưu các thành phần cụ thể (tệp tin, cơ sở dữ liệu).
- Tải về và lưu trữ an toàn: Sau khi quá trình sao lưu hoàn tất, hệ thống thường cung cấp một liên kết để tải tệp tin sao lưu (thường là định dạng .tar.gz hoặc .zip) về máy tính cá nhân. Nếu cần, bạn có thể cấu hình lưu trữ bản sao lưu này sang một máy chủ hoặc không gian lưu trữ an toàn khác (ví dụ: qua giao thức FTP).

Lưu ý
Tùy chọn và chi phí cho các bản sao lưu có thể khác nhau tùy thuộc vào chính sách và gói dịch vụ của từng nhà cung cấp VPS.
Nếu bạn ưu tiên sự ổn định, an toàn và muốn tập trung thời gian vào việc phát triển kinh doanh thay vì quản trị hệ thống, các dịch vụ VPS có tích hợp sẵn tính năng backup tự động như tại Vietnix là một lựa chọn rất đáng cân nhắc. Các giải pháp này giúp bạn yên tâm rằng dữ liệu luôn được bảo vệ bởi một quy trình chuyên nghiệp.
Cách 2: Tự động hóa backup dữ liệu VPS Linux bằng script (nâng cao)
Phương pháp này cung cấp quyền kiểm soát chặt chẽ và khả năng tự động hóa cao quy trình sao lưu tệp tin và cơ sở dữ liệu trên máy chủ VPS Linux. Đây là kỹ thuật phù hợp cho người dùng cần tùy chỉnh sâu quy trình bảo vệ dữ liệu.
Backup dữ liệu trên file, folder
Cách thủ công sử dụng zip
Đầu tiên, bạn hãy đảm bảo máy chủ đã cài sẵn công cụ nén và giải nén zip.
Đối với Ubuntu:
sudo apt update
sudo apt install zip 
Đối với CentOS:
sudo dnf install zip -y
Khi cần lưu trữ toàn bộ tệp tin và thư mục trong một đường dẫn (ví dụ: /home/user/webdata), bạn dùng lệnh sau để nén tất cả:
zip -r backup-webdata.zip /home/user/webdataMuốn lưu file vừa nén vào thư mục riêng (ví dụ /home/backup/), cú pháp:
zip -r /home/backup/backup-webdata.zip /home/user/webdataLưu ý, bạn nên chuyển đến thư mục chứa dữ liệu bằng lệnh cd trước khi thực thi zip, ví dụ:
cd /home/user/webdata
zip -r backup-webdata.zip ./Bạn cần thay đổi đường dẫn chứa source cho đúng với đường dẫn đang lưu trên máy chủ. Ví dụ như của mình sẽ là website /home/user_web/public_html.

Backup tự động bằng bash script
Để tiết kiệm thời gian và tự động hóa thao tác backup, bạn hãy tạo một file bash script với nội dung như sau:
Tạo file /usr/local/bin/auto-backup.sh nội dung cơ bản:
#!/bin/bash
NGAY=$(date +"%d-%m-%Y")
THU_MUC_LUU="/home/backup"
mkdir -p $THU_MUC_LUU > /dev/null 2>&1
for dir in /home/*; do
[ -d "$dir" ] && zip -r "$THU_MUC_LUU/$(basename $dir)_$NGAY.zip" "$dir"
sleep 1
done
# Xóa backup cũ hơn 7 ngày
find $THU_MUC_LUU -name "*.zip" -type f -mtime +6 -exec rm -f {} \;Đổi quyền thực thi cho script:
chmod +x /usr/local/bin/auto-backup.sh
Script này sẽ nén từng thư mục trong /home, lưu ra thư mục backup, và dọn dẹp file cũ sau 7 ngày.
Sao lưu cơ sở dữ liệu MySQL
Để tránh mất mát thông tin khi có sự cố, hãy thực hiện backup định kỳ cho MySQL bằng một trong hai phương pháp:
Backup tự động
Bạn tạo file /usr/local/bin/backup-mysql.sh với nội dung:
#!/bin/bash
NGAY=$(date +"%d-%m-%Y")
THU_MUC_SQL="/backup/mysql-$NGAY"
mkdir -p $THU_MUC_SQL
# Thay đổi USER và PASS thành tài khoản root MySQL của bạn
MYSQL_USER="root"
MYSQL_PASS="matkhau"
for db in $(mysql -u $MYSQL_USER -p$MYSQL_PASS -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql|sys)"); do
mysqldump -u $MYSQL_USER -p$MYSQL_PASS $db | gzip > $THU_MUC_SQL/$db.sql.gz
sleep 1
done
# Xóa thư mục MySQL backup quá 7 ngày
find /backup -name "mysql-*" -type d -mtime +6 -exec rm -rf {} \;Bạn cần thêm quyền thực thi với câu lệnh sau:
chmod +x /usr/local/bin/backup-mysql.sh
Backup thủ công
Để xuất từng database thành file thì bạn cần chạy các lệnh sau:
- Nếu backup một database duy nhất:
mysqldump -u username -p databasename > /home/backup/mydb-$(date +"%d-%m-%Y").sql- Nếu muốn gộp cả mật khẩu vào dòng lệnh:
mysqldump -u username -ppassword databasename > /home/backup/mydb-$(date +"%d-%m-%Y").sql
File .sql sẽ xuất hiện ở thư mục do bạn chỉ định.
Tự động hóa backup mỗi ngày bằng cron job
Việc cài cron giúp tự động thực hiện backup vào khung giờ bạn muốn. Để chỉnh sửa lịch backup, bạn cần gõ:
crontab -eSau đó bổ sung các dòng dưới đây (giả định các script backup đã có quyền thực thi) để thực hiện backup web data vào 1 giờ sáng:
0 1 * * * /usr/local/bin/auto-backup.shBackup MySQL vào 3 giờ sáng:
0 3 * * * /usr/local/bin/
Nếu muốn thay đổi khung giờ hoặc backup nhiều lần/ngày, bạn chỉ cần thêm dòng cron tương ứng với thời gian mong muốn.
Lưu ý quan trọng để đảm bảo an toàn dữ liệu
Backup chỉ là một nửa vấn đề lưu trữ và quản lý bản sao lưu mới là điểm quan trọng để bảo vệ dữ liệu của bạn:
- Lưu trữ bên ngoài VPS: Luôn tải các bản sao lưu quan trọng xuống máy tính cá nhân hoặc chuyển lên các dịch vụ lưu trữ đám mây (ví dụ: Google Drive, S3). Điều này đảm bảo dữ liệu vẫn an toàn ngay cả khi VPS bị hỏng hoàn toàn.
- Kiểm tra khả năng khôi phục: Định kỳ kiểm tra các tệp sao lưu theo tuần hoặc tháng để xác nhận chúng không bị hỏng và có thể được khôi phục thành công.
- Lựa chọn phương pháp phù hợp: Bạn cần cân nhắc nhu cầu về dung lượng dữ liệu, ngân sách và mức độ tự động hóa mong muốn để chọn phương pháp sao lưu phù hợp nhất.

Câu hỏi thường gặp
Backup và Snapshot khác nhau như thế nào?
Snapshot khôi phục toàn hệ thống rất nhanh, Backup linh hoạt cho lưu trữ và phục hồi dữ liệu chi tiết.
Tần suất backup dữ liệu VPS hợp lý là bao nhiêu?
Tần suất backup hợp lý là hàng ngày đối với website, database quan trọng, còn hệ thống ít thay đổi có thể backup 1-2 lần/tuần. Bạn nên ưu tiên backup tự động để tránh quên hoặc sót dữ liệu.
Việc backup có ảnh hưởng đến hiệu suất của VPS không?
Câu trả lời là Có. Backup sẽ dùng nhiều CPU, RAM và I/O ổ đĩa, bạn nên lên lịch backup vào lúc ít truy cập (1–4h sáng) để tránh ảnh hưởng website.
Cách kiểm tra tính toàn vẹn của bản sao lưu VPS?
Trước khi thực hiện khôi phục (restore) VPS, bạn nên xác minh bản sao lưu có hoạt động tốt và không bị hỏng hóc. Có ba phương pháp chính để kiểm tra tính toàn vẹn này:
– Dùng tính năng có sẵn của phần mềm sao lưu: Công cụ sao lưu thường có sẵn tính năng tự kiểm tra (dùng thuật toán checksum) để xác nhận tệp sao lưu không bị lỗi.
– Dùng công cụ ngoài (bên thứ ba): Sử dụng các phần mềm chuyên dụng để kiểm tra, đặc biệt hữu ích nếu bạn dùng nhiều định dạng sao lưu khác nhau.
– Dùng lệnh máy chủ: Chạy các lệnh trực tiếp trên VPS để kiểm tra tệp sao lưu, giúp kiểm tra sâu hơn.
Backup dữ liệu VPS là việc bắt buộc để bảo vệ an toàn cho dự án. Việc chủ động sao lưu thường xuyên giúp bạn luôn sẵn sàng phục hồi khi cần và yên tâm phát triển hệ thống ổn định. Để tìm hiểu thêm các kiến thức quản trị VPS hữu ích khác, bạn có thể tham khảo các bài viết dưới đây:




