NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
19/08/2024
Lượt xem

Hướng dẫn cách backup dữ liệu trên VPS chi tiết, dễ dàng thực hiện

19/08/2024
17 phút đọc
Lượt xem

Đánh giá

Việc backup dữ liệu VPS là yếu tố quan trọng để bảo vệ thông tin và đảm bảo an toàn hệ thống. Trong bài viết này, Vietnix sẽ hướng dẫn bạn các phương pháp backup dữ liệu trên VPS từ cơ bản đến nâng cao. Bạn sẽ biết cách sao lưu thủ công, tự động hóa bằng script Bash và lập lịch backup với cron job. Hãy cùng khám phá thông tin này để bảo vệ VPS của bạn ngay hôm nay!

Cách 1: Backup file thủ công

Trong quá trình quản lý và bảo vệ dữ liệu trên VPS, việc sao lưu dữ liệu (backup) là một bước vô cùng quan trọng để đảm bảo tính toàn vẹn và an toàn cho hệ thống của bạn. Để thực hiện backup các file và folder của mã nguồn trên website, bạn có thể sử dụng lệnh zip, một công cụ nén đơn giản nhưng hiệu quả.

Bước 1: Cài đặt phần mềm zip và unzip

Trước khi tiến hành backup, bạn cần cài đặt phần mềm zip và unzip trên hệ điều hành của VPS. Dưới đây là các lệnh để cài đặt trên các hệ điều hành phổ biến:

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 thực hiện backup

Để backup 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 của website nằm tại đường dẫn /home/webdata/vietnix.vn/public_html và bạn muốn nén toàn bộ folder này thành một file nén tên là vietnix.zip, bạn có thể sử dụng lệnh sau:

zip -r vietnix.zip /home/webdata/vietnix.vn/public_html

Nếu bạn muốn lưu file nén này vào folder /home/backup/, lệnh sẽ như sau:

zip -r /home/backup/vietnix.zip /home/webdata/vietnix.vn/public_html

Lưu ý: Để đảm bảo việc nén diễn ra thuận lợi và tránh các lỗi không mong muốn, bạn nên chuyển vào folder chứa dữ liệu cần nén bằng lệnh cd trước, sau đó mới thực hiện lệnh zip.

Ví dụ: cd /home/webdata/vietnix.vn/public_html

zip -r vietnix.zip

Với các bước đơn giản như trên, bạn có thể dễ dàng thực hiện backup dữ liệu trên các file và folder của mình, giúp bảo vệ an toàn cho hệ thống trước các rủi ro tiềm tàng.

Cách 2: Backup file bằng script bash shell

Bằng việc sử dụng script bash shell sẽ giúp bạn tự động hóa quá trình backup và quản lý dung lượng lưu trữ một cách hiệu quả hơn. Các lệnh và thao tác thực hiện backup bằng script bash shell cũng không thực sự quá khó, bạn có thể theo dõi hướng dẫn dưới đây của Vietnix để nắm chi tiết cách làm.

Bước 1: Xác định file, folder cần backup

Trong hướng dẫn này, Vietnix sẽ lấy ví dụ là dữ liệu cần backup là toàn bộ các folder nằm trong đường dẫn /home.

Bước 2: Bạn hãy tạo script backup

Để tự động hóa quá trình backup dữ liệu, bạn cần tạo một script bash shell. Script này sẽ thực hiện việc nén các folder trong /home thành các file zip và lưu trữ chúng ở một folder cụ thể. Đồng thời, script cũng sẽ tự động xóa các bản backup cũ sau một khoảng thời gian nhất định (ví dụ: sau 7 ngày) để giúp quản lý dung lượng lưu trữ hiệu quả. Trước tiên bạn cần tạo một file script mới tại đường dẫn /usr/src/backup-web.sh. Sau đó, thêm nội dung sau vào file này:

#!/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 đoạn script: 

  • DATE được sử dụng để tạo một biến lưu trữ ngày hiện tại.
  • Lệnh mkdir -p $BACKUP tạo thư mục lưu trữ các bản backup nếu nó chưa tồn tại.
  • Vòng lặp for sẽ quét qua tất cả các thư mục con trong /home, sau đó nén từng thư mục thành các file zip và lưu vào thư mục mà bạn đã chỉ định.
  • Cuối cùng, lệnh find được sử dụng để xóa các bản backup cũ hơn 7 ngày.

Bước 3: Phân quyền thực thi cho script

Để script có thể chạy được, bạn cần phân quyền thực thi cho file vừa tạo bằng lệnh sau:

chmod +x /usr/src/backup-web.sh

Bước 4: Thiết lập folder lưu trữ backup

Bạn cần đảm bảo rằng biến $BACKUP trong script được thiết lập đúng với folder bạn muốn lưu trữ các file backup. Ví dụ, bạn có thể thiết lập $BACKUP trỏ tới folder /home/backup/ để lưu các file backup tại đó.

Bước 5: Chạy script để thực hiện backup

Sau khi hoàn thành các bước trên, bạn chỉ cần chạy script để thực hiện backup. Script sẽ tự động nén các folder trong /home thành các file zip và lưu chúng vào folder bạn đã chỉ định. Và dĩ nhiên, script cũng tự động xóa các bản backup cũ sau 7 ngày (hoặc số ngày bạn đã cấu hình), giúp quản lý dung lượng lưu trữ hiệu quả.

./usr/src/backup-web.sh

Cách 1: Backup dữ liệu database MySQL tự động với Bash Script

Để tự động sao lưu tất cả các cơ sở dữ liệu MySQL trên máy chủ, bạn có thể tạo một script Bash giúp tự động hóa quá trình này. Dưới đây là các bước thực hiện:

Bước 1: Tạo một script Bash để sao lưu tất cả các cơ sở dữ liệu MySQL

Bạn cần tạo một file script với tên backup-mysql.sh trong thư mục /usr/src/. Mở terminal và tạo file này bằng cách sử dụng lệnh: sudo nano /usr/src/backup-mysql.sh. Thêm nội dung sau 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:
    • DATE=date +"%d-%m-%y": Lấy ngày hiện tại để sử dụng trong tên thư mục backup.
    • BACKUP="/backup/mysql-$DATE": Định nghĩa thư mục lưu trữ backup theo ngày.
    • mkdir -p $BACKUP: Tạo thư mục lưu trữ backup nếu chưa tồn tại.
    • for i in \mysql -u root -pabcd@123 -e "SHOW DATABASES;" | tr -d "| " | grep -v Database: Lặp qua tất cả các cơ sở dữ liệu trong MySQL, bỏ qua tên cột “Database”.
    • mysqldump -u root -pabcd@123 $i | gzip -9 > $BACKUP/$i.sql.gz: Sao lưu và nén từng cơ sở dữ liệu thành file .sql.gz.
    • find /backup -name 'mysql*' -type d -mtime +6 -exec rm -rf {} \;: Xóa các bản backup cũ hơn 7 ngày để tiết kiệm không gian lưu trữ.

Bước 2: Phân quyền thực thi cho script vừa tạo.

Để script có thể chạy được, bạn cần phân quyền thực thi cho file bằng lệnh:

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 bạn muốn script này tự động chạy hàng ngày, bạn có thể thiết lập cron job. Mở cron editor bằng lệnh:

sudo crontab -e

Thêm dòng sau vào cron để script chạy hàng ngày lúc 02:00 sáng:

 0 2 * * * /usr/src/backup-mysql.sh

Kết quả: Sau khi thực hiện các bước trên, script sẽ tự động sao lưu tất cả các cơ sở dữ liệu MySQL trên máy chủ của bạn vào thư mục /backup/. Lệnh này sẽ tạo các bản sao lưu nén mỗi ngày và giữ lại các bản sao lưu trong vòng 7 ngày. Quá trình này hoàn toàn tự động và giúp bạn quản lý backup một cách hiệu quả mà không cần phải thực hiện thủ công.

Cách 2: Backup dữ liệu database MySQL thủ công

Bước 1: Để thực hiện backup cơ sở dữ liệu MySQL, bạn có thể sử dụng lệnh mysqldump. Lệnh này cho phép bạn sao lưu toàn bộ cấu trúc và dữ liệu của database thành một file .sql, giúp dễ dàng phục hồi 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 bạn có một database tên là db1 với username db1_user và muốn sao lưu vào một file có tên là vietnix-data.sql, bạn sẽ sử dụng lệnh bên dưới đây.

mysqldump -u db1_user -p db1 > vietnix-data.sql

Bước 2: Khi chạy lệnh này, hệ thống sẽ yêu cầu bạn nhập mật khẩu của user db1_user. Nếu bạn muốn lệnh chạy mà không cần nhập mật khẩu thủ công, bạn có thể thêm mật khẩu trực tiếp vào lệnh với cú pháp.

Cú pháp lệnh:

-p[mật khẩu]

Ví dụ: mysqldump -u db1_user -p123456 db1 > vietnix-data.sql

Bước 3: File .sql sẽ được lưu ở folder hiện tại mà bạn đang truy cập. Nếu bạn muốn lưu file này ở một folder khác, chỉ cần thêm đường dẫn đầy đủ vào phần tên file .sql.

Ví dụ: mysqldump -u db1_user -p123456 db1 > /home/backup/vietnix-data.sql

Lập lịch cron job – Backup cho server tự động mỗi ngày

Việc lập lịch tự động backup cho server giúp bạn đảm bảo dữ liệu quan trọng luôn được sao lưu định kỳ mà không cần phải thao tác thủ công. Dưới đây là hướng dẫn chi tiết về cách lập lịch cron job để tự động backup dữ liệu web và cơ sở dữ liệu MySQL trên một VPS/Server Linux.

Lập lịch cron job - Backup cho server tự động mỗi ngày
Lập lịch cron job – Backup cho server tự động mỗi ngày

Bước 1: Trên VPS/Server Linux, bạn chạy lệnh bên dưới để mở cron editor. Lệnh này sẽ đưa bạn vào giao diện chỉnh sửa cron job, nơi bạn có thể thiết lập các tác vụ tự động chạy vào thời gian đã định trước.

crontab -e

Bước 2: Trong cron editor, thêm dòng sau để thiết lập backup dữ liệu web hàng ngày vào lúc 1:00 sáng:

0 1 * * * /path/to/web-backup-script.sh
  • Giải thích:
    • 0 1 * * *: Thiết lập cron chạy vào lúc 1:00 sáng mỗi ngày.
    • /path/to/web-backup-script.sh: Đường dẫn tới script sao lưu dữ liệu web của bạn. Đảm bảo rằng script này đã được tạo và phân quyền thực thi trước đó.

Bước 3: Tiếp tục thêm dòng sau để thiết lập backup cơ sở dữ liệu MySQL hàng ngày vào lúc 3:00 sáng:

0 3 * * * /path/to/mysql-backup-script.sh
  • Giải thích:
    • 0 3 * * *: Thiết lập cron chạy vào lúc 3:00 sáng mỗi ngày.
    • /path/to/mysql-backup-script.sh: Đường dẫn tới script sao lưu cơ sở dữ liệu MySQL của bạn. Script này cần được chuẩn bị trước và đã có quyền thực thi.

Bước 4: Sau khi thêm các dòng lệnh trên, bạn lưu lại (thường là nhấn Ctrl + O rồi Enter trong nano) và thoát khỏi cron editor (nhấn Ctrl + X trong nano).

Kết quả: Với việc thiết lập cron job như trên, hệ thống sẽ tự động thực hiện backup dữ liệu web vào lúc 1:00 sáng và backup cơ sở dữ liệu MySQL vào lúc 3:00 sáng mỗi ngày. Điều này giúp bạn duy trì việc sao lưu dữ liệu một cách đều đặn và giảm thiểu nguy cơ mất dữ liệu do các sự cố không mong muốn.

Cách backup dữ liệu VPS tại Vietnix

Để đảm bảo dữ liệu trên VPS của bạn tại Vietnix luôn an toàn, việc thực hiện backup thường xuyên là rất quan trọng. Bạn có thể bắt đầu bằng cách tạo một bản backup thủ công, sau đó thiết lập lịch trình tự động hàng ngày. Ngoài ra, nếu cần backup tại nhiều thời điểm trong ngày, bạn cũng có thể dễ dàng cấu hình để VPS tự động sao lưu theo lịch trình mong muốn. 

1. Tạo một bản backup cho VPS

Bước 1: Bạn chọn vào tính năng Backups trong mục Liên kết nhanh.

Bạn chọn vào tính năng "Backups" trong mục "Liên kết nhanh"
Bạn chọn vào tính năng “Backups” trong mục “Liên kết nhanh”

Nếu không thấy mục Liên kết nhanh, bạn có thể chọn Backups từ phần Additional Tools.

Bạn có thể chọn "Backups" từ phần "Additional Tools"
Bạn có thể chọn “Backups” từ phần “Additional Tools”

Bước 2: Bạn nhấp vào tùy chọn New Backup để bắt đầu quá trình tạo bản sao lưu mới.

Lưu ý: Nếu bạn không tìm thấy tùy chọn New Backup, điều này có nghĩa là số lượng bản sao lưu đã đạt mức tối đa. Bạn cần xóa bớt các bản sao lưu cũ để có thể tạo bản sao lưu mới.

Chọn New Backup để bắt đầu quá trình tạo bản sao lưu mới
Chọn New Backup để bắt đầu quá trình tạo bản sao lưu mới

Bước 3: Bạn chọn chế độ sao lưu là Snapshot, cho phép bạn sao lưu VPS ngay cả khi nó vẫn đang chạy. Sau đó, bạn nhấp vào nút Confirm để xác nhận. Quá trình sao lưu sẽ hoàn tất sau ít phút, tùy thuộc vào dung lượng của VPS.

Bạn chọn chế độ sao lưu là Snapshot, cho phép bạn sao lưu VPS ngay cả khi nó vẫn đang chạy
Bạn chọn chế độ sao lưu là Snapshot, cho phép bạn sao lưu VPS ngay cả khi nó vẫn đang chạy

2. Lập lịch tự động chạy backup cho VPS hằng ngày

Lưu ý: Khi số lượng file backup đã đạt giới hạn, hệ thống sẽ tự động xóa bản backup cũ nhất để tạo bản backup mới.

Bước 1: Bạn chọn Backup Jobs trong mục Liên kết nhanh hoặc chọn Backup Jobs tại Additional Tools và sau đó chọn New Job.

Hướng dẫn truy cập Backup Jobs trên giao diện quản lý
Hướng dẫn truy cập Backup Jobs trên giao diện quản lý

Bước 2: Bạn tiến hành cấu hình lịch backup theo các thông số sau:

  • Start Time: Bạn chọn thời gian bắt đầu backup. Ví dụ: 16:00.
  • Day of Week: Chọn tất cả 7 ngày trong tuần hoặc tùy chỉnh theo nhu cầu của bạn.
  • Backup Mode: Chọn Snapshot với  chế độ này có thể cho phép backup khi VPS vẫn đang chạy.

Bước 3: Bạn chọn Confirm để lưu lịch backup.

Thiết lập và xác nhận tạo Backup Job mới
Thiết lập và xác nhận tạo Backup Job mới

Sau khi chọn Confirm như trên, màn hình của bạn sẽ hiển thị lịch backup đã được hệ thống xác nhận với các thông tin như thời gian bắt đầu backup, tần suất và chế độ backup.

Danh sách Backup Jobs đã được thiết lập
Danh sách Backup Jobs đã được thiết lập

Sau khi lịch backup được lưu, hệ thống sẽ tự động thực hiện backup cho VPS theo lịch đã thiết lập như hình bên dưới.

Quản lý và khôi phục các bản sao lưu đã tạo
Quản lý và khôi phục các bản sao lưu đã tạo

3. Lập lịch tự động chạy backup cho VPS nhiều thời điểm mỗi ngày

Nếu bạn đã có lịch backup vào lúc 16:00 mỗi ngày và muốn tạo thêm lịch backup vào lúc 04:00, bạn cần thực hiện các bước sau:

Bước 1: Bạn nhấn vào nút New Job để tạo thêm một lịch backup thứ hai.

Tạo Backup Job mới trên giao diện quản lý
Tạo Backup Job mới trên giao diện quản lý

Bước 2: Bạn chọn thời điểm backup mới là 04:00.

Thiết lập thời gian cho Backup Job mới
Thiết lập thời gian cho Backup Job mới

Bước 3: Bạn nhấn vào nút Confirm để xác nhận và kiểm tra lại lịch backup vừa thiết lập. Sau khi hoàn tất, hệ thống sẽ tự động thực hiện backup cho VPS vào cả hai thời điểm 16:00 và 04:00 mỗi ngày.

Danh sách Backup Jobs sau khi tạo mới
Danh sách Backup Jobs sau khi tạo mới

Lời kết

Bằng việc áp dụng các phương pháp mà Vietnix đã chia sẻ, từ backup thủ công đến tự động bằng Bash Script và thiết lập cron job, bạn có thể dễ dàng tạo ra những bản sao lưu toàn diện Hãy bắt đầu ngay với những hướng dẫn đơn giản trên, nếu có bất cứ khó khăn hay vướng mắc gì, đừng ngần ngại để lại bình luận bên dưới để team có thể đồng hành, hỗ trợ gỡ rối giúp bạn. Chúc bạn thành công.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG