Bài viết hướng dẫn backup vps dưới đây sẽ giúp bạn chủ động bảo vệ toàn bộ dữ liệu máy chủ trước những rủi ro bất ngờ như lỗi phần cứng, mã độc hay thao tác nhầm lẫn. Đừng để đến khi toàn bộ mã nguồn và dữ liệu biến mất mới vội vã tìm cách khắc phục; hãy trang bị ngay quy trình sao lưu chuẩn hóa từ ThueVPSGiaRe.vn để đảm bảo hệ thống luôn sẵn sàng khôi phục trong thời gian ngắn nhất.
Tại sao nên backup dữ liệu VPS thường xuyên?
Khi thuê máy chủ ảo, nhiều người dùng mang tâm lý phó mặc an toàn dữ liệu cho nhà cung cấp. Thực tế, hạ tầng Cloud có thể bảo vệ máy chủ khỏi các lỗi phần cứng vật lý, nhưng không thể bảo vệ bạn khỏi lỗi do chính mình gây ra. Việc thao tác nhầm lệnh xóa file, cập nhật phiên bản phần mềm gây sập web, hoặc bị hacker khai thác lỗ hổng là những nguyên nhân phổ biến nhất dẫn đến mất dữ liệu.

Một số người lầm tưởng rằng hệ thống ổ cứng có dự phòng phần cứng là đã an toàn. Bạn cần hiểu rõ raid là gì để thấy rằng cơ chế RAID chỉ giúp máy chủ tiếp tục chạy khi một ổ cứng vật lý bị hỏng, chứ nó hoàn toàn không giúp bạn lấy lại file vừa bị xóa nhầm. Nếu mã độc mã hóa (ransomware) tấn công hệ thống của bạn, cơ chế RAID cũng sẽ sao chép chính những file bị mã hóa đó sang các ổ cứng khác trong hệ thống.
Do đó, việc thiết lập sao lưu vps định kỳ là lớp phòng thủ cuối cùng. Kết hợp với việc tìm hiểu cách bảo mật vps đúng chuẩn từ đầu, bạn sẽ tạo ra một môi trường vận hành ứng dụng, website hoặc tool MMO bền vững, giảm thiểu tối đa rủi ro gián đoạn dịch vụ.
Checklist các thành phần cần kiểm tra trước khi Backup
Trước khi khởi chạy tiến trình sao lưu, người quản trị cần sàng lọc và định hình các hạng mục trọng yếu. Việc tập trung vào những thành phần cốt lõi sẽ tiết kiệm đáng kể thời gian, tránh lãng phí tài nguyên lưu trữ và đẩy nhanh tốc độ phục hồi hệ thống khi cần thiết.
- Mã nguồn (Source Code): Toàn bộ thư mục chứa mã nguồn trang web hoặc phần mềm đang chạy. Ví dụ: trên nền tảng Linux thường nằm ở
/var/www/hoặc/home/; còn trên hệ điều hành Windows quản trị qua IIS nằm ở đường dẫnC:\inetpub\wwwroot. - Hệ thống cơ sở dữ liệu: Xuất toàn bộ bản ghi và cấu trúc của các hệ cơ sở dữ liệu phổ biến như MySQL, MariaDB, PostgreSQL hay Microsoft SQL Server.
- Dữ liệu tĩnh của người dùng: Thư mục lưu hình ảnh, video, hồ sơ tài liệu cùng toàn bộ tệp đính kèm do khách hàng đăng tải trong suốt vòng đời sử dụng dịch vụ.
- Tệp thiết lập hệ thống (Configuration): Bao gồm file tinh chỉnh các Web Server (Nginx, Apache, IIS), môi trường PHP, Node.js, kịch bản Docker, cấu hình Docker Compose, tác vụ Cronjob, Scheduled Tasks và các biến môi trường (Environment Variables).
- Hệ thống chứng chỉ và an toàn mạng: Lưu lại chứng chỉ số SSL/TLS, bảng cấu hình tên miền, thiết lập tường lửa (Firewall) cùng các cặp khóa xác thực SSH Key quan trọng.
Cách lựa chọn phương pháp và xây dựng lịch trình Backup dữ liệu
Áp dụng chuẩn xác giải pháp sao lưu và phân bổ chu kỳ hợp lý sẽ giữ cho hệ thống luôn cân bằng hoàn hảo giữa hiệu năng máy chủ, dung lượng đĩa lưu trữ và khoảng thời gian cần thiết để hồi sinh dữ liệu khi có sự cố phát sinh.
So sánh chi tiết các phương pháp sao lưu cốt lõi
Mỗi chiến lược backup đều sở hữu ưu thế riêng, người dùng cần căn cứ theo quy mô máy chủ và chu kỳ cập nhật dữ liệu để áp dụng:
| Phương pháp | Mô tả | Ưu điểm | Nhược điểm | Phù hợp với |
|---|---|---|---|---|
| Full Backup | Sao lưu toàn bộ dữ liệu hiện có của VPS | Khôi phục nhanh, dễ quản lý, toàn vẹn cao | Chiếm nhiều dung lượng và thời gian thực hiện | Backup lần đầu hoặc chạy định kỳ tuần/tháng |
| Incremental Backup | Chỉ sao lưu các phần dữ liệu biến động kể từ mốc backup gần nhất | Rất tiết kiệm ổ đĩa, tiến trình sao lưu diễn ra cực nhanh | Restore cần đủ các bản liên tiếp, thao tác phức tạp hơn | Website, app có dữ liệu mới phát sinh liên tục |
| Differential Backup | Sao lưu tất cả dữ liệu có thay đổi kể từ lần Full Backup gần nhất | Khôi phục nhanh hơn Incremental, bớt phụ thuộc nhiều tệp | Dung lượng file sao lưu tăng dần qua từng ngày | Hệ thống ưu tiên khôi phục nhanh khi xảy ra lỗi |
Lời khuyên thực tế: Bạn nên chạy một bản Full Backup định kỳ làm điểm tựa chuẩn hóa, sau đó đan xen các phiên Incremental Backup hoặc Differential Backup ở giữa để vừa giảm tải tài nguyên vừa tối ưu dung lượng lưu trữ.
Lịch trình sao lưu dữ liệu khuyến nghị
Một kế hoạch bảo vệ dữ liệu toàn diện thường kết hợp linh hoạt nhiều mốc thời gian, ví dụ thực hiện Full Backup mỗi tuần, Incremental Backup mỗi ngày và duy trì bản Full Backup dài hạn mỗi tháng:
| Tần suất | Phù hợp với đối tượng nào? | Khuyến nghị triển khai |
|---|---|---|
| Hàng ngày | Website thương mại điện tử, cổng CRM, ERP, ứng dụng giao dịch nhiều | Tiến hành vào khung giờ đêm muộn, ít truy cập để không nghẽn máy chủ |
| Hàng tuần | Website giới thiệu doanh nghiệp, blog tin tức hoặc trang ít chỉnh sửa | Là lịch trình mặc định tiêu chuẩn trên hầu hết hạ tầng máy chủ ảo |
| Hàng tháng | Hệ thống tài liệu tĩnh, môi trường thử nghiệm hoặc kho lưu trữ phụ | Dùng cho các bản lưu trữ dài hạn phục vụ mục đích lưu trữ lịch sử |
Snapshot VPS là gì? Phân biệt rõ Snapshot và Backup
Snapshot VPS là công nghệ chụp lại toàn bộ trạng thái của máy chủ (bao gồm hệ điều hành, cấu hình mạng, bộ nhớ RAM và dữ liệu ổ cứng) tại một thời điểm chính xác tính bằng giây. Chức năng này thường được nhà cung cấp tích hợp sẵn trên trang quản trị, giúp người dùng “quay ngược thời gian” cực nhanh nếu quá trình cấu hình hệ thống gặp lỗi.
Rất nhiều quản trị viên hệ thống nhầm lẫn giữa Snapshot và Backup, dẫn đến những hậu quả nghiêm trọng khi thảm họa xảy ra. Hãy phân biệt chúng qua các tiêu chí sau:
- Mục đích sử dụng: Snapshot sinh ra để phục vụ việc rollback nhanh (hoàn tác) ngay trước khi bạn thực hiện một thay đổi lớn như nâng cấp hệ điều hành, cài đặt module mới. Trong khi đó, Backup là hành động sao chép và lưu trữ dữ liệu định kỳ để phòng ngừa mất mát lâu dài.
- Vị trí lưu trữ: Snapshot thường được lưu trên cùng một cụm lưu trữ vật lý (Storage Pool) với VPS hiện tại để đảm bảo tốc độ khôi phục. Nếu hạ tầng lưu trữ đó gặp sự cố, bạn mất cả VPS lẫn bản Snapshot. Ngược lại, một bản backup dữ liệu server chuẩn phải được xuất ra file riêng biệt và mang đi lưu trữ ở một máy chủ vật lý khác hoặc trung tâm dữ liệu khác.
- Tính linh hoạt: Với Snapshot, bạn phải khôi phục lại toàn bộ máy chủ. Bạn không thể chỉ lấy ra một file ảnh hoặc một bảng database bị hỏng. Với file Backup (thường là định dạng .tar.gz hoặc .zip), bạn có thể giải nén và trích xuất đúng thư mục mình cần.
Nên lưu bản sao lưu ở đâu để không mất trắng khi server sập?
Nguyên tắc cốt lõi của backup là không bao giờ lưu bản sao lưu trên cùng một máy chủ cần backup. Nếu VPS của bạn chết, ổ đĩa gắn trên nó cũng chết theo, mọi file backup nằm trong đó sẽ vô dụng.
Dưới đây là các phương án lưu trữ backup an toàn, xếp từ mức độ phổ biến và dễ tiếp cận với người dùng cá nhân, doanh nghiệp nhỏ:
- VPS hoặc máy chủ lưu trữ riêng: Bạn thuê một VPS khác với chi phí thấp, đóng vai trò là máy chủ nhận file backup. Đây là cách các hệ thống nhỏ hay dùng vì tốc độ truyền tải nội bộ mạng của nhà cung cấp thường rất nhanh và không tốn băng thông internet public. Bạn có thể tham khảo thêm dịch vụ VPS lưu trữ dữ liệu để làm điểm đến backup.
- Cloud Storage (Google Drive, Dropbox, S3): Dùng công cụ như
rclonetrên Linux để đồng bộ dữ liệu backup lên các dịch vụ lưu trữ đám mây. Ưu điểm là chi phí rẻ hoặc miễn phí cho dung lượng nhỏ, chống rủi ro nhà cung cấp VPS phá sản. - Máy tính cá nhân hoặc NAS nội bộ: Dùng giao thức FTP hay SFTP để pull dữ liệu về máy tại nhà. Cách này phù hợp với khối lượng dữ liệu nhỏ và cần kiểm soát vật lý tuyệt đối.
Cần phân biệt rõ giữa backup và dự phòng phần cứng. Nhiều người nghĩ rằng VPS dùng ổ cứng cấu hình RAID (ví dụ RAID 10) thì không cần backup. RAID giúp chống rủi ro hỏng một hoặc vài ổ cứng vật lý, nhưng không thể chống lại việc bạn xóa nhầm file hay bị hack xóa dữ liệu. RAID là tính năng dự phòng phần cứng, không thay thế cho việc sao lưu dữ liệu định kỳ.
Cách backup VPS Linux tự động bằng Script và Cronjob
Đối với các quản trị viên chạy web, việc backup website trên vps Linux thường bao gồm hai thành phần chính: mã nguồn (Source Code) và cơ sở dữ liệu (Database). Thay vì cài đặt các phần mềm nặng nề, bạn có thể tự viết một đoạn bash script đơn giản kết hợp với lệnh nén tar, sau đó dùng công cụ hệ thống cron để lên lịch chạy mỗi ngày.

Bước 1: Viết Script sao lưu
Nếu bạn vừa hoàn thành việc cài wordpress lên vps, mã nguồn của bạn thường nằm ở thư mục /var/www/html. Bạn có thể tạo một file script tên là backup_vps.sh bằng lệnh nano /root/backup_vps.sh và dán đoạn mã sau vào:
#!/bin/bash
# Cấu hình biến môi trường
BACKUP_DIR="/backup"
WEB_DIR="/var/www/html"
DB_NAME="wordpress_db"
DB_USER="root"
DB_PASS="MatKhauCuaBan"
DATE=$(date +"%Y-%m-%d_%H-%M")
# Tạo thư mục lưu trữ nếu chưa có
mkdir -p $BACKUP_DIR
# Backup Database bằng mysqldump
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/db_$DATE.sql
# Nén mã nguồn và database vào một file tar.gz
tar -czvf $BACKUP_DIR/full_backup_$DATE.tar.gz $WEB_DIR $BACKUP_DIR/db_$DATE.sql
# Xóa file sql lẻ để tiết kiệm dung lượng
rm $BACKUP_DIR/db_$DATE.sql
# Chỉ giữ lại 7 bản backup gần nhất
find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;
Sau khi lưu file, bạn cấp quyền thực thi cho script bằng lệnh: chmod +x /root/backup_vps.sh. Khi bạn chạy file này, hệ thống sẽ gom tất cả dữ liệu web và database, nén lại thành một file có chứa ngày tháng (VD: full_backup_2026-07-14.tar.gz) và tự động xóa các bản cũ hơn 7 ngày để tránh đầy ổ cứng.
Bước 2: Hẹn lịch backup tự động với Cronjob
Để script trên tự động chạy mà không cần sự can thiệp của con người, bạn thiết lập lịch backup tự động qua công cụ Cron. Mở bảng chỉnh sửa lịch bằng lệnh crontab -e, di chuyển xuống dòng cuối cùng và thêm vào cấu hình sau:
0 2 * * * /root/backup_vps.sh > /dev/null 2>&1
Cú pháp 0 2 * * * có ý nghĩa yêu cầu máy chủ tự động thực thi script vào lúc 2 giờ sáng mỗi ngày. Đây là khoảng thời gian thấp điểm, lượng truy cập website ít, giúp tiến trình nén file không gây ảnh hưởng đến trải nghiệm của người dùng. Như vậy, bạn đã hoàn thiện quy trình backup vps linux cơ bản và cực kỳ hiệu quả.
Cách backup dữ liệu trên VPS Windows
Khi quản trị VPS Windows, việc chủ động đóng gói các thành phần như mã nguồn, cấu hình máy chủ web và cơ sở dữ liệu là quy trình nền tảng giúp hệ thống phục hồi thần tốc sau sự cố kỹ thuật.
Bước 1: Nén và sao lưu mã nguồn website
Đầu tiên, bạn cần kết nối máy chủ qua Remote Desktop để thao tác trực tiếp với giao diện đồ họa:
- Mở File Explorer và điều hướng trực tiếp đến thư mục đang lưu trữ mã nguồn website.
- Quét chọn toàn bộ các tệp tin cùng thư mục thành phần bên trong.
- Thực hiện gom nhóm và nén lại thành định dạng tệp
.ziphoặc.rar. - Chuyển tệp nén này sang một thư mục lưu trữ sao lưu chuyên biệt đã chuẩn bị từ trước trên ổ đĩa.
Bước 2: Sao lưu thiết lập cấu hình máy chủ IIS
Lưu lại cấu hình Internet Information Services (IIS) giúp bạn tái thiết lập các Website, thông số Application Pool và toàn bộ tinh chỉnh máy chủ web chỉ trong tích tắc. Hãy khởi động cửa sổ Command Prompt (cmd) với quyền Administrator rồi thực thi lệnh:
%windir%\system32\inetsrv\appcmd add backup BackupConfig
Nếu muốn kiểm tra lại danh sách các bản ghi cấu hình đã được tạo thành công, bạn chạy câu lệnh:
%windir%\system32\inetsrv\appcmd list backup
Bước 3: Sao lưu cơ sở dữ liệu
Tùy thuộc vào phần mềm quản trị cơ sở dữ liệu đang vận hành, bạn có thể triển khai xuất dữ liệu theo các phương án cụ thể sau:
Đối với hệ quản trị SQL Server: Bạn có thể sử dụng công cụ giao diện SQL Server Management Studio (SSMS), thiết lập tính năng tự động Maintenance Plan hoặc chạy trực tiếp đoạn lệnh T-SQL:
BACKUP DATABASE TenDatabase TO DISK = 'D:\Backup\TenDatabase.bak'
Đối với cơ sở dữ liệu MySQL chạy trên Windows: Sử dụng tiện ích dòng lệnh để xuất toàn bộ cấu trúc cùng bản ghi ra tệp .sql:
mysqldump -u root -p ten_database > database.sql
Bước 4: Sao lưu thông số cấu hình hệ thống
Để quá trình tái thiết lập máy chủ sau khi khắc phục sự cố diễn ra liền mạch, ngoài mã nguồn và dữ liệu thô, bạn cần trích xuất thêm các thông số môi trường quan trọng gồm:
- Quy tắc tường lửa hệ thống (Windows Firewall Rules).
- Các tác vụ tự động hóa được thiết lập trong Scheduled Tasks.
- File cấu hình chi tiết của dịch vụ IIS.
- Tệp chứng chỉ bảo mật số SSL/TLS đang áp dụng trên hệ thống.
- Các biến môi trường và tệp cấu hình đặc thù của ứng dụng
Cách Backup dữ liệu trên file và folder thủ công
Sao lưu dữ liệu là công việc cần thiết trong quá trình quản lý VPS, giúp bảo vệ tính toàn vẹn của dữ liệu và hạn chế những rủi ro có thể ảnh hưởng đến hệ thống. Để sao lưu các file và folder chứa mã nguồn website, bạn có thể sử dụng công cụ zip để nén dữ liệu thành file lưu trữ.
Bước 1: Cài đặt zip và unzip
Trước khi tiến hành sao lưu, bạn cần cài đặt hai công cụ zip và unzip trên VPS. Tùy thuộc vào hệ điều hành đang sử dụng, hãy thực hiện các lệnh cài đặt tương ứng dưới đây:
Trên Ubuntu:
sudo apt install zip
sudo apt install unzip
Trên CentOS:
sudo dnf install zip
sudo dnf install unzip
Bước 2: Tiến hành sao lưu dữ liệu
Để nén toàn bộ dữ liệu trong một folder, bạn có thể sử dụng lệnh zip. Ví dụ, nếu mã nguồn website được lưu tại đường dẫn /home/webdata/thuevpsgiare.vn/public_html và bạn muốn tạo file nén có tên thuevpsgiare.zip, hãy chạy lệnh sau:
zip -r thuevpsgiare.zip /home/webdata/thuevpsgiare.vn/public_html
Nếu cần lưu file backup vào folder /home/backup/, bạn có thể sử dụng lệnh sau:
zip -r /home/backup/thuevpsgiare.zip /home/webdata/thuevpsgiare.vn/public_html
Lưu ý: Để quá trình nén dữ liệu diễn ra thuận lợi và hạn chế các lỗi phát sinh, bạn nên dùng lệnh cd để chuyển đến folder chứa dữ liệu cần sao lưu trước khi thực hiện lệnh zip.
Ví dụ, chuyển đến folder chứa mã nguồn website bằng lệnh:
cd /home/webdata/thuevpsgiare.vn/public_html
Sau đó, thực hiện lệnh nén dữ liệu:
zip -r thuevpsgiare.zip
Thông qua các thao tác trên, bạn có thể chủ động sao lưu dữ liệu trong các file và folder trên VPS, góp phần bảo vệ hệ thống trước những rủi ro tiềm ẩn.
Cách Backup dữ liệu trên file và folder bằng Bash Shell Script
Sử dụng Bash Shell Script giúp bạn tự động hóa quá trình sao lưu dữ liệu và quản lý dung lượng lưu trữ hiệu quả hơn. Các thao tác thiết lập script backup không quá phức tạp. Bạn có thể thực hiện theo hướng dẫn dưới đây của ThueVPSGiaRe.vn để nắm rõ quy trình.
Bước 1: Xác định file và folder cần sao lưu
Trong ví dụ này, dữ liệu cần backup là toàn bộ các folder nằm trong đường dẫn /home.
Bước 2: Tạo script backup
Để tự động hóa việc sao lưu, bạn cần tạo một Bash Shell Script có chức năng nén các folder trong /home thành các file ZIP rồi lưu vào một folder được chỉ định. Bên cạnh đó, script còn có thể tự động xóa các bản backup đã cũ sau một khoảng thời gian nhất định, chẳng hạn 7 ngày, nhằm tối ưu dung lượng lưu trữ.
Trước tiên, tạo file script tại đường dẫn /usr/src/backup-web.sh. Sau đó, thêm đoạn mã sau vào file:
#!/bin/bash
DATE=`date +"%d-%m-%y"`
mkdir -p $BACKUP
for i in `ls /home`
do
/usr/bin/zip -r -9 $BACKUP/$i.zip /home/$i
sleep 1
done
##Giữ 7 bản backup trên server, tùy vào dung lượng server của bạn mà điều chỉnh số ngày cho phù hợp
find /backup -name 'web*' -type d -mtime +6 -exec rm -rf {} \;
Giải thích các thành phần trong script:
DATElà biến dùng để lưu ngày hiện tại theo định dạng đã thiết lập.mkdir -p $BACKUPtạo folder lưu trữ các bản backup nếu folder đó chưa tồn tại.- Vòng lặp
forlần lượt duyệt qua các folder con trong/home, nén từng folder thành file ZIP và lưu vào vị trí được chỉ định. - Lệnh
findtìm và xóa các bản backup cũ hơn 7 ngày theo điều kiện được cấu hình trong script.
Bước 3: Cấp quyền thực thi cho script
Sau khi tạo file script, bạn cần cấp quyền thực thi để có thể chạy file. Sử dụng lệnh sau:
chmod +x /usr/src/backup-web.sh
Bước 4: Cấu hình folder lưu trữ bản backup
Hãy kiểm tra và đảm bảo biến $BACKUP trong script được thiết lập đúng với folder mà bạn muốn dùng để lưu các file backup. Ví dụ, bạn có thể cấu hình biến này trỏ đến đường dẫn /home/backup/ để lưu trữ dữ liệu sao lưu tại đó.
Bước 5: Chạy script để sao lưu dữ liệu
Khi đã hoàn tất các bước cấu hình, bạn có thể chạy script để bắt đầu quá trình backup. Script sẽ tự động nén các folder bên trong /home thành file ZIP và lưu vào folder đã thiết lập. Đồng thời, các bản backup cũ cũng sẽ được xóa theo thời hạn 7 ngày hoặc số ngày mà bạn đã cấu hình, qua đó hỗ trợ quản lý dung lượng lưu trữ hiệu quả hơn.
Chạy script bằng lệnh:
./usr/src/backup-web.sh
Do backup dữ liệu đóng vai trò quan trọng trong việc bảo vệ hệ thống, lựa chọn giải pháp lưu trữ có khả năng sao lưu hiệu quả là điều cần thiết.
Cách Backup dữ liệu database MySQL thủ công
Bước 1: Sử dụng lệnh mysqldump để backup database
Để sao lưu cơ sở dữ liệu MySQL, bạn có thể sử dụng lệnh mysqldump. Công cụ này cho phép xuất toàn bộ cấu trúc và dữ liệu của database thành một file có định dạng .sql, giúp việc khôi phục dữ liệu trở nên thuận tiện khi cần thiết.
Cú pháp lệnh:
mysqldump -u [tên database username] -p [tên database cần backup] > [tên file cần lưu].sql
Ví dụ, nếu database có tên db1, username là db1_user và bạn muốn lưu bản sao lưu vào file thuevpsgiare-data.sql, hãy chạy lệnh sau:
mysqldump -u db1_user -p db1 > thuevpsgiare-data.sql
Bước 2: Nhập mật khẩu để thực hiện backup
Sau khi chạy lệnh, hệ thống sẽ yêu cầu bạn nhập mật khẩu của user db1_user. Nếu muốn nhập mật khẩu trực tiếp trong câu lệnh thay vì phải nhập thủ công khi được yêu cầu, bạn có thể thêm mật khẩu ngay sau tùy chọn -p theo cú pháp dưới đây:
Cú pháp lệnh:
-p[mật khẩu]
Ví dụ:
mysqldump -u db1_user -p123456 db1 > thuevpsgiare-data.sql
Bước 3: Chọn vị trí lưu file backup
File .sql sẽ mặc định được lưu tại folder hiện tại mà bạn đang truy cập. Nếu muốn lưu file tại một folder khác, bạn chỉ cần bổ sung đường dẫn đầy đủ của file đích vào lệnh sao lưu.
Ví dụ, để lưu file thuevpsgiare-data.sql vào folder /home/backup/, hãy sử dụng lệnh sau:
mysqldump -u db1_user -p123456 db1 > /home/backup/thuevpsgiare-data.sql
Cách backup dữ liệu database MySQL bằng Bash Script
Để tự động backup toàn bộ cơ sở dữ liệu MySQL trên máy chủ, bạn có thể xây dựng một Bash Script thực hiện quá trình sao lưu thay cho các thao tác thủ công. Các bước thiết lập được hướng dẫn cụ thể dưới đây.

Bước 1: Tạo Bash Script để sao lưu tất cả database MySQL
Đầu tiên, tạo file script có tên backup-mysql.sh trong thư mục /usr/src/. Mở terminal và chạy lệnh sau để tạo hoặc chỉnh sửa file:
sudo nano /usr/src/backup-mysql.sh
Tiếp theo, thêm đoạn mã dưới đây vào file script:
#!/bin/bash
DATE=`date +"%d-%m-%y"`
BACKUP="/backup/mysql-$DATE"
mkdir -p $BACKUP
for i in `mysql -u root -pabcd@123 -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
do
mysqldump -u root -pabcd@123 $i | gzip -9 > $BACKUP/$i.sql.gz
sleep 1
done
## Giữ 7 bản backup trên server, tùy vào dung lượng server của bạn mà điều chỉnh số ngày cho phù hợp
find /backup -name 'mysql*' -type d -mtime +6 -exec rm -rf {} \;
Giải thích các lệnh trong script:
DATE=date +"%d-%m-%y": Lấy ngày hiện tại để sử dụng khi đặt tên thư mục backup.BACKUP="/backup/mysql-$DATE": Khai báo đường dẫn thư mục lưu trữ bản sao lưu theo ngày thực hiện.mkdir -p $BACKUP: Tạo thư mục lưu backup nếu thư mục đó chưa tồn tại.- Vòng lặp
forkết hợp với lệnhmysql,trvàgrepđể lấy danh sách các database trong MySQL, đồng thời loại bỏ dòng tiêu đềDatabase. mysqldump -u root -pabcd@123 $i | gzip -9 > $BACKUP/$i.sql.gz: Xuất dữ liệu của từng database bằngmysqldump, nén kết quả bằnggzipvà lưu thành file có định dạng.sql.gz.find /backup -name 'mysql*' -type d -mtime +6 -exec rm -rf {} \;: Tìm và xóa các thư mục backup cũ hơn 7 ngày theo điều kiện được thiết lập, giúp tiết kiệm dung lượng lưu trữ.
Bước 2: Cấp quyền thực thi cho script
Để hệ thống có thể thực thi file script vừa tạo, bạn cần cấp quyền chạy bằng lệnh sau:
sudo chmod +x /usr/src/backup-mysql.sh
Bước 3: Thiết lập lịch chạy tự động cho script (tùy chọn)
Nếu muốn quá trình backup được thực hiện tự động mỗi ngày, bạn có thể thiết lập lịch chạy bằng cron job. Trước tiên, mở trình chỉnh sửa cron bằng lệnh:
sudo crontab -e
Sau đó, thêm dòng cấu hình dưới đây để script tự chạy vào lúc 02:00 sáng hằng ngày:
0 2 * * * /usr/src/backup-mysql.sh
Kết quả:
Sau khi hoàn tất cấu hình, script sẽ tự động sao lưu các cơ sở dữ liệu MySQL trên máy chủ vào thư mục /backup/. Các bản backup được nén và tạo theo ngày, đồng thời những bản sao lưu cũ sẽ được dọn dẹp theo thời hạn đã thiết lập là 7 ngày. Quy trình này giúp bạn quản lý dữ liệu sao lưu hiệu quả hơn mà không cần thực hiện từng thao tác thủ công.
Các phương thức tải bản Backup ra khỏi VPS an toàn
Một sai lầm rất phổ biến là cất giữ toàn bộ bản sao lưu trên chính ổ đĩa của VPS. Khi phần cứng hỏng hóc hoặc phải cài đặt lại hệ điều hành VPS, các dữ liệu này sẽ bị xóa sạch hoàn toàn. Vì vậy, di dời file backup ra thiết bị bên ngoài là điều kiện bắt buộc.
Sử dụng giao thức dòng lệnh SCP
Lệnh SCP hỗ trợ truyền tải an toàn qua kết nối mã hóa. Bạn có thể kéo tệp từ máy chủ về máy trạm bằng các cú pháp chuẩn xác:
Thao tác từ máy trạm chạy Linux hoặc macOS:
scp root@IP_VPS:/backup/website-2026-07-20.tar.gz .
Thao tác từ Windows PowerShell:
scp root@IP_VPS:/backup/database.sql.gz C:\Backup\
Sử dụng phần mềm giao diện đồ họa
Nếu muốn thao tác trực quan bằng chuột thay vì gõ lệnh trên terminal, các giải pháp sau là lựa chọn lý tưởng:
- Sử dụng phần mềm WinSCP để quản lý và kéo thả tệp giữa máy tính Windows với các dòng máy chủ Linux.
- Dùng ứng dụng FileZilla để truyền tải tệp tin qua FTP hoặc SFTP với cơ chế bảo mật cao.
- Khai thác tính năng RDP bằng cách bật cấu hình Local Resources trên RDP để gắn ổ đĩa máy tính vào VPS Windows, sau đó copy trực tiếp file sao lưu về máy cá nhân.
⚠️ Khuyến nghị an toàn theo nguyên tắc 3-2-1:
Để hạn chế tối đa nguy cơ thảm họa dữ liệu, hãy tuân thủ tiêu chuẩn: sở hữu 3 bản sao dữ liệu, lưu giữ trên 2 loại phương tiện hoặc nền tảng lưu trữ riêng biệt, đồng thời bắt buộc phải có ít nhất 1 bản sao lưu nằm hoàn toàn bên ngoài VPS (chẳng hạn lưu tại ổ cứng máy tính, thiết bị NAS hoặc dịch vụ đám mây).
Chiến lược lưu trữ bản sao lưu VPS an toàn ngoài máy chủ
Các đoạn mã kịch bản ở trên chỉ mới hoàn thiện một nửa quy trình về cách backup dữ liệu vps. Các file .tar.gz hay .zip vẫn đang nằm trên chính ổ cứng của chiếc máy chủ đó. Nếu nhà cung cấp gặp sự cố cháy nổ Data Center, hoặc hacker xâm nhập chiếm quyền Root và format toàn bộ ổ cứng, file backup của bạn cũng sẽ biến mất theo.
Chiến lược an toàn tuyệt đối yêu cầu bạn phải áp dụng quy tắc Off-site Backup, tức là đẩy file ra khỏi máy chủ hiện tại.
- Sử dụng một VPS giá rẻ khác làm Storage: Bạn có thể thuê một vps lưu trữ dữ liệu cấu hình thấp (không cần CPU mạnh, chỉ cần dung lượng đĩa lớn) ở một nhà cung cấp hoặc một quốc gia khác. Sau đó dùng lệnh
rsynctrên Linux để đồng bộ file sang tự động mỗi đêm. - Đồng bộ qua giao thức FTP: Đa số các nhà cung cấp Hosting hiện nay đều cho phép cấp tài khoản FTP. Việc hiểu rõ ftp là gì giúp bạn dễ dàng dùng lệnh
curlhoặc các tool như FileZilla để tải bản sao lưu từ VPS về máy tính cá nhân hoặc đẩy sang một Server lưu trữ tập trung. - Đẩy lên Google Drive, S3 Object Storage: Đối với các cá nhân, việc dùng công cụ Rclone để liên kết VPS với tài khoản Google Drive cá nhân là phương án miễn phí cực kỳ hiệu quả, đảm bảo dữ liệu không bị giới hạn phần cứng vật lý.
Quy trình khôi phục dữ liệu VPS khi xảy ra sự cố
Một bản sao lưu không có ý nghĩa gì nếu bạn chưa từng thử khôi phục nó. Thảm họa thường xảy ra vào những lúc hệ thống bận rộn nhất. Để khôi phục dữ liệu vps thành công, bạn cần giữ bình tĩnh và thực hiện các bước cách ly lỗi trước khi nhồi dữ liệu cũ đè lên.
Nếu VPS của bạn bị hack hoặc dính mã độc, đừng cố gắng giải nén file backup đè lên nền tảng cũ. Việc đầu tiên cần làm là áp dụng cách cài lại hệ điều hành vps (Rebuild OS) từ trang quản trị để xóa sạch hoàn toàn mã độc ẩn sâu trong hệ thống. Sau khi có một hệ điều hành mới tinh, bạn mới tiến hành tải file backup đã lưu trữ ở ngoài về.
Thao tác khôi phục trên Linux
Di chuyển file full_backup_xxx.tar.gz về máy chủ, giải nén nó bằng lệnh:
tar -xzvf full_backup_xxx.tar.gz -C /
Cờ -C / sẽ giúp giải nén cấu trúc thư mục trở lại đúng vị trí /var/www/html như ban đầu. Tiếp theo, bạn nhập lại cơ sở dữ liệu bằng lệnh mysql -u root -p wordpress_db < db_xxx.sql. Cuối cùng, khởi động lại dịch vụ Web Server (Nginx hoặc Apache) để nhận thay đổi. Quá trình này thường chỉ diễn ra trong vòng 5 đến 10 phút tùy vào kích thước mã nguồn.
Checklist triển khai lịch backup tự động an toàn cho người mới
Để đảm bảo quy trình backup dữ liệu server của bạn thực sự hoạt động khi cần thiết, hãy đi qua checklist sau trước khi coi hệ thống đã hoàn thiện:
- Xác định dữ liệu quan trọng: Liệt kê chính xác thư mục code, đường dẫn database, file cấu hình hệ thống. Không backup toàn bộ ổ đĩa hệ thống (như
/usr,/bin) vì làm vậy sẽ tốn dung lượng và thời gian. Chỉ backup những gì không thể cài lại bằng lệnh. - Chọn vị trí lưu trữ độc lập: Đảm bảo điểm đến backup không nằm trên cùng node vật lý với VPS chính. Kiểm tra kết nối mạng giữa hai VPS có ổn định không.
- Thiết lập xác thực không mật khẩu: Nếu dùng Rsync qua SSH, bắt buộc phải cấu hình SSH Key-based authentication. Nếu không, lịch Cron sẽ bị treo vì không có cách nào nhập mật khẩu tự động.
- Cài đặt lịch backup tự động: Đối với web nhỏ, chạy 1 lần/ngày vào giờ thấp điểm (2h-4h sáng) là đủ. Không nên cài backup mỗi 5 phút vì sẽ gây tải I/O cao cho ổ SSD NVMe và tốn CPU.
- Bật cơ chế xoay vòng (Rotation): Disk ở VPS đích cũng có giới hạn. Cần viết thêm lệnh trong script để tự động xóa các bản backup cũ hơn 7 ngày hoặc 30 ngày. Ví dụ:
find /backup/ -name "*.sql.gz" -mtime +7 -exec rm {} \; - Kiểm tra log định kỳ: Đừng tạo xong script và quên đi. Mỗi tuần nên kiểm tra log 1 lần để chắc chắn script không bị lỗi đường dẫn hay đầy disk.
- Thử nghiệm khôi phục (Restore Test): Đây là bước quan trọng nhất nhưng hay bị bỏ qua. Ít nhất mỗi quý 1 lần, hãy thử restore bản backup ra một VPS test để xem dữ liệu có nguyên vẹn không, database có import được không.
Câu hỏi thường gặp (FAQ)
Nên thiết lập lịch backup tự động bao lâu một lần?
Tần suất sao lưu phụ thuộc vào tốc độ thay đổi dữ liệu của bạn. Nếu bạn sở hữu một blog cá nhân, tần suất 1 lần/tuần hoặc 1 lần/ngày là đủ. Nhưng với một website thương mại điện tử, có đơn hàng liên tục, bạn cần backup database tối thiểu vài giờ một lần. Đảm bảo cấu hình tiến trình nén diễn ra vào ban đêm (VD: 2-3h sáng) để tránh làm nghẽn CPU hệ thống.
Quá trình nén file backup có làm website bị giật lag không?
Lệnh tar hoặc zip sử dụng khá nhiều tài nguyên CPU và khả năng đọc ổ cứng. Nếu mã nguồn của bạn quá lớn (vài chục GB) và chạy trên các gói VPS RAM 1GB, tình trạng quá tải cục bộ hoàn toàn có thể xảy ra. Để khắc phục, bạn có thể cân nhắc nâng cấp lên gói VPS cấu hình mạnh hơn hoặc dùng các công cụ đồng bộ gia tăng (rsync) thay vì nén toàn bộ mỗi ngày.
Có nên sao lưu toàn bộ hệ điều hành (Full OS Backup) không?
Theo kinh nghiệm thực chiến, bạn không nên sao lưu toàn bộ hệ điều hành thành file trừ khi có lý do đặc biệt. Hệ điều hành rất nặng và có thể cài mới lại trong vài phút. Bạn chỉ nên tập trung sao lưu thư mục mã nguồn ứng dụng, cấu hình phần mềm (file .conf) và cơ sở dữ liệu. Như vậy dung lượng file backup sẽ rất nhẹ, dễ dàng đẩy lên cloud.
Cách khôi phục dữ liệu VPS từ file SQL quá nặng như thế nào?
Nếu file database (.sql) của bạn lên tới vài trăm Megabytes hoặc Gigabytes, việc Import thông qua giao diện phpMyAdmin sẽ lập tức báo lỗi Time-out. Bạn bắt buộc phải ssh vào màn hình console của Linux và sử dụng lệnh dòng lệnh (như mysql -u db_user -p database_name < file_backup.sql) để nạp thẳng dữ liệu vào lõi hệ thống mà không bị giới hạn bộ nhớ.
Tôi dùng VPS Windows thì Google Drive có an toàn để lưu trữ không?
Google Drive là một lựa chọn cực kỳ tốt cho cá nhân. Tuy nhiên, nếu bạn cài đặt Google Drive Desktop trực tiếp lên VPS Windows để nó tự động đồng bộ (sync), hãy cẩn thận với mã độc tống tiền (Ransomware). Nếu mã độc mã hóa file trên VPS, Google Drive cũng sẽ đồng bộ file bị hỏng đó lên đám mây. Tốt nhất là sử dụng lệnh đẩy file một chiều hoặc nén file có đặt mật khẩu trước khi tải lên.
Đầu tư cho backup là đầu tư cho giấc ngủ ngon
Khi hiểu rõ cách backup dữ liệu vps và áp dụng triệt để nguyên tắc lưu trữ phân tán (Off-site), bạn sẽ không còn phải nơm nớp lo sợ viễn cảnh máy chủ chết bất đắc kỳ tử. Dù sử dụng mã lệnh shell đơn giản trên Linux, hay công cụ Task Scheduler trên Windows, việc đưa tiến trình sao lưu vào quỹ đạo tự động là thao tác tối quan trọng của bất kỳ người quản trị nào. Một hệ thống mạnh chỉ thực sự an toàn khi nó có một đường lui vững chắc phía sau.
Cần một VPS giá rẻ để bắt đầu thực hành kỹ thuật quản trị?
Chọn máy chủ cấu hình vừa đủ nhu cầu, ưu tiên chi phí dễ tiếp cận và khả năng quản trị Root để thoải mái thử nghiệm hệ thống backup, test script tự động hóa.
Lưu ý kỹ thuật: Các đoạn mã lệnh bash (Linux), PowerShell (Windows) và quy trình thiết lập cronjob trong bài viết mang tính chất hướng dẫn tham khảo cơ bản. Cấu trúc thư mục, phiên bản hệ điều hành và quyền hạn (permissions) thực tế trên máy chủ của bạn có thể khác biệt. Người đọc nên kiểm thử kỹ lưỡng kịch bản sao lưu trong môi trường thử nghiệm, đánh giá rủi ro và xác nhận file có thể giải nén thành công trước khi áp dụng định kỳ cho môi trường thực tế (production).

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