Cách backup WordPress trên VPS: file, database và lịch tự động

Backup WordPress trên VPS nên gồm hai phần: toàn bộ mã nguồn trong thư mục web và database MySQL/MariaDB. Bạn nên nén file, xuất database bằng mysqldump, lưu bản sao ra nơi khác ngoài VPS, rồi đặt lịch tự động. Quan trọng nhất là phải thử khôi phục định kỳ, vì backup chưa kiểm tra thì chưa thật sự an toàn.

Minh họa sao lưu file, database và lưu trữ ngoài VPS cho WordPress

Backup WordPress trên VPS nghe có vẻ là việc phụ. Đến lúc website lỗi, bị xóa nhầm file, update plugin làm trắng trang hoặc database hỏng, nó lại thành việc quan trọng nhất.

Tôi thường nhìn backup theo cách rất thực dụng: nếu hôm nay VPS mất sạch dữ liệu, bạn có thể dựng lại website trong bao lâu? Nếu câu trả lời là “không biết”, hệ thống backup hiện tại chưa đủ tốt.

Backup WordPress trên VPS gồm những phần nào?

Một website WordPress không chỉ là vài file giao diện. Nó có hai khối dữ liệu chính: file và database. File chứa WordPress core, theme, plugin, ảnh upload, file cấu hình. Database chứa bài viết, trang, menu, user, đơn hàng WooCommerce, cài đặt plugin và rất nhiều dữ liệu mà bạn không thấy bằng mắt thường.

Vì vậy, backup đúng nghĩa phải có cả hai. Chỉ nén thư mục web mà quên database thì khi restore bạn chỉ có “vỏ”. Chỉ export database mà quên uploads thì bài viết còn đó nhưng ảnh có thể mất.

Sơ đồ backup WordPress trên VPS gồm file, database và nơi lưu ngoài máy chủ
Một quy trình backup đơn giản: nén file, xuất database, chuyển bản sao ra ngoài VPS và kiểm tra khả năng khôi phục.

Cách backup file WordPress trên VPS bằng lệnh tar

Trước tiên, xác định thư mục chứa website. Tùy cách cài đặt, nó có thể là /var/www/html, /home/domain/public_html hoặc một thư mục riêng trong Docker volume.

cd /var/www
sudo tar -czf wordpress-files-$(date +%F).tar.gz html/

Lệnh trên tạo một file nén chứa thư mục WordPress. Với site lớn, thư mục wp-content/uploads có thể rất nặng. Bạn nên kiểm tra dung lượng trước để tránh làm đầy ổ cứng VPS.

du -sh /var/www/html
 df -h

Nếu ổ còn ít dung lượng, đừng cố nén ngay trên VPS. Hãy backup theo từng phần hoặc chuyển trực tiếp sang nơi lưu trữ khác.

Cách backup database WordPress bằng mysqldump

Database mới là phần nhiều người quên. Với MySQL hoặc MariaDB, cách phổ biến là dùng mysqldump.

mysqldump -u DB_USER -p DB_NAME > wordpress-db-$(date +%F).sql

Thông tin DB_USERDB_NAME nằm trong file wp-config.php. Bạn có thể xem nhanh bằng lệnh:

grep DB_ /var/www/html/wp-config.php

Không nên gửi file SQL thô qua nơi công cộng. File này có thể chứa email khách hàng, hash mật khẩu, thông tin đơn hàng và cấu hình nội bộ.

Nên lưu bản backup ở đâu?

Để backup trong cùng VPS chỉ tốt hơn không backup một chút. Nếu bạn xóa nhầm cả thư mục, VPS bị full disk, tài khoản bị chiếm quyền hoặc nhà cung cấp gặp sự cố, bản backup nằm cùng máy cũng có thể biến mất.

Tối thiểu, hãy giữ một bản ngoài VPS. Có thể là object storage, một VPS khác, Google Drive, máy tính cá nhân hoặc hệ thống backup của nhà cung cấp. Với website quan trọng, tôi thích nguyên tắc 3-2-1: ba bản sao, hai loại nơi lưu trữ, một bản nằm ngoài máy chủ chính.

Cách đặt lịch backup tự động bằng cron

Khi đã có lệnh backup thủ công chạy ổn, bạn có thể đóng gói thành script. Ví dụ đơn giản:

#!/bin/bash
BACKUP_DIR="/root/backups"
SITE_DIR="/var/www/html"
DB_NAME="wordpress"
DB_USER="wordpress"
DATE=$(date +%F)

mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/files-$DATE.tar.gz" "$SITE_DIR"
mysqldump -u "$DB_USER" -p"YOUR_PASSWORD" "$DB_NAME" > "$BACKUP_DIR/db-$DATE.sql"
find "$BACKUP_DIR" -type f -mtime +7 -delete

Với mật khẩu database, cách tốt hơn là dùng file cấu hình riêng có phân quyền chặt thay vì để lộ trực tiếp trong script. Nhưng ví dụ trên giúp bạn hình dung luồng cơ bản.

Thêm cron chạy mỗi ngày lúc 2 giờ sáng:

crontab -e
0 2 * * * /root/backup-wordpress.sh >> /var/log/wp-backup.log 2>&1

Kiểm tra bản backup như thế nào?

Đây là đoạn nhiều người bỏ qua. Backup không phải là file nén nằm trong thư mục. Backup là khả năng khôi phục.

Checklist kiểm tra bản backup WordPress trước khi cần khôi phục
Đừng chỉ tạo backup. Hãy kiểm tra file nén, database và thử restore trên môi trường phụ.

Sau khi tạo backup, bạn nên kiểm tra vài điểm: file có dung lượng hợp lý không, file nén có mở được không, SQL có dòng dữ liệu thật không, và nếu có điều kiện thì restore thử trên một subdomain hoặc VPS phụ.

tar -tzf wordpress-files-2026-05-22.tar.gz | head
head wordpress-db-2026-05-22.sql

Nếu website có WooCommerce hoặc form lead quan trọng, hãy ưu tiên kiểm tra database. Mất ảnh đã đau, mất đơn hàng còn đau hơn.

Khi nào nên backup trước khi thao tác?

Có những lúc bạn nên backup ngay, không chờ lịch tự động: trước khi update WordPress core, đổi theme, cập nhật plugin lớn, sửa database, chuyển hosting sang VPS, đổi cấu hình Nginx/PHP, hoặc dọn dẹp file để giải phóng dung lượng.

Một bản backup tạo trước thay đổi lớn thường tiết kiệm vài giờ xử lý sự cố. Đôi khi là vài ngày.

Đọc thêm: Nếu bạn đang tối ưu WordPress sau khi backup, xem bài cách tối ưu tốc độ WordPress trên VPS. Nếu website vẫn đang ở hosting, bài cách chọn cấu hình VPS sẽ giúp bạn chọn tài nguyên trước khi chuyển.

FAQ về backup WordPress trên VPS

Backup WordPress trên VPS cần sao lưu những gì?

Bạn cần sao lưu thư mục chứa mã nguồn WordPress, thư mục uploads, file cấu hình wp-config.php và database MySQL hoặc MariaDB. Nếu dùng cấu hình Nginx, Apache, cron hoặc script riêng, bạn cũng nên lưu thêm các file cấu hình liên quan.

Có nên chỉ dùng plugin backup WordPress không?

Plugin backup tiện cho người mới, nhưng trên VPS tôi vẫn khuyên có thêm bản backup cấp hệ thống bằng file nén và mysqldump. Khi website lỗi nặng hoặc không vào được wp-admin, bản backup thủ công thường dễ cứu hơn.

Nên lưu backup ở đâu ngoài VPS?

Bạn có thể lưu lên object storage, Google Drive, máy chủ khác hoặc tải về máy cá nhân. Không nên chỉ để backup trong cùng VPS, vì nếu VPS bị full disk, lỗi ổ cứng hoặc bị xóa nhầm, bản backup cũng có thể mất theo.

Bao lâu nên backup WordPress một lần?

Website ít thay đổi có thể backup hằng tuần. Website bán hàng, tin tức hoặc có đơn hàng nên backup database hằng ngày, thậm chí nhiều lần mỗi ngày nếu dữ liệu thay đổi liên tục.

Làm sao biết bản backup có dùng được?

Hãy kiểm tra dung lượng file, mở thử file nén, test import database trên môi trường phụ và định kỳ khôi phục thử. Nếu chỉ tạo file backup nhưng chưa bao giờ test restore, bạn vẫn đang đánh cược.

Kết luận: backup là bảo hiểm rẻ nhất cho WordPress VPS

Một VPS nhanh không có nhiều ý nghĩa nếu bạn không thể khôi phục khi có sự cố. Hãy bắt đầu bằng quy trình đơn giản: backup file, backup database, lưu ra ngoài VPS và kiểm tra định kỳ. Khi website lớn hơn, bạn có thể nâng cấp sang lịch backup dày hơn, lưu trữ nhiều lớp hơn và giám sát tự động.

Để 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 *