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!
Backup dữ liệu trên file, folder
Dưới đây, Vietnix sẽ giới thiệu hai cách đơn giản và hiệu quả để backup dữ liệu trên file và thư mục: backup thủ công và backup tự động bằng script Bash Shell. Mỗi phương pháp đều có ưu điểm riêng, giúp bạn dễ dàng chọn lựa cách phù hợp nhất với nhu cầu của mình.
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
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
Backup dữ liệu database MySQL
Backup cơ sở dữ liệu MySQL là việc cần thiết để bảo vệ dữ liệu quan trọng trên VPS. Bạn có thể chọn backup tự động bằng Bash Script hoặc thực hiện thủ công. Mỗi phương pháp đều có ưu và nhược điểm riêng, phù hợp với nhu cầu và kỹ năng của bạn. Dưới đây Vietnix sẽ hướng dẫn chi tiết cho cả hai cách backup MySQL.
Cách 1: Backup dữ liệu database MySQL tự động với Bash Script
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
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
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]
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.
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.
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
).
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.
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ướ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.
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.
2. Lập lịch tự động chạy backup cho VPS hằng ngày
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.
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.
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.
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.
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.
Bước 2: Bạn chọn thời điểm backup mới là 04:00.
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.
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.