Trang chủ WordpressHướng dẫn Wordpress Backup & Restore WordPress trên Linux Server – Cách làm thủ công

Backup & Restore WordPress trên Linux Server – Cách làm thủ công

bởi Thạch Phạm
7 bình luận 7,2K views

Tham gia nhóm hỗ trợ WordPress

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay
Bài này thuộc phần 2 của 4 phần trong serie Backup & Restore WordPress trên máy chủ

Khi đã sử dụng VPS rồi thì việc thao tác các dòng lệnh để tự mình backup và khôi phục dữ liệu thủ công trên đó bạn chắc chắn phải nắm được để linh hoạt hơn mà không phải lúc nào chúng ta có thể dựa vào các công cụ tự động hóa được.

Trong bài này, mình sẽ chỉ hướng dẫn các bạn backup các dữ liệu của website trên VPS. Còn các dữ liệu khác như cấu hình của VPS, Webserver,…thì bạn nên tự download các file đó về máy để cất giữ thì hay hơn.

Nên xem trước: Học VPS căn bản

I. Cài phần mềm cần thiết

Trong bài backup thủ công này, mình sẽ sử dụng lệnh zipunzip vì lệnh này dễ sử dụng hơn lệnh tar nhiều. Do đó, bạn cần chắc chắn là VPS của bạn đã có cài phần mềm ZIP bằng cách chạy lệnh sau để cài:

Khuyến mãi Black Friday

[bash]sudo yum install zip unzip -y[/bash]

II. Backup và khôi phục source code

2.1) Backup source code

Để backup các file và folder trong source code của website trên VPS, chúng ta sẽ sử dụng lệnh zip với cấu trúc như sau:

[bash]zip [tùy chọn] [tên-file-cần-tạo] [thư-mục-cần-nén][/bash]

Trong đó, mục [tùy chọn] sẽ có rất nhiều tùy chọn nhưng hầu hết mình chỉ sử dụng một tùy chọn đó là -r: nghĩa là sẽ nén luôn cả toàn bộ file trong các thư mục con của thư mục cần nén.

Ví dụ mình có source code tại đường dẫn VirtualHost là /home/webdata/thachpham.com/public_html và mình cần nén lại toàn bộ file và thư mục trong đó thành một file tên là thachpham.zip thì sẽ viết như sau:

[bash]zip -r thachpham.zip /home/webdata/thachpham.com/public_html/*[/bash]

Sau khi nén xong, file thachpham.zip sẽ được lưu tại thư mục mà bạn đang truy cập do mình không viết rõ đường dẫn cần lưu file. Nếu mình cần lưu file thachpham.zip vào thư mục /home/backup/ thì sẽ viết như sau:

[bash]zip -r /home/backup/thachpham /home/webdata/thachpham.com/public_html/*[/bash]

Nhưng bạn xin lưu ý một chỗ, nếu bạn không cd vào thư mục cần zip thì khi zip, nó sẽ gom toàn bộ cây thư mục vào. Ví dụ như mẫu lệnh ở trên, thì khi giải nén ra nó sẽ có thư mục /home/webdata/thachpham.com/public_html chứ không chỉ có source code không.

Do vậy, nếu cần zip thì tốt nhất bạn nên cd vào thư mục trước rồi zip sau như ví dụ sau đây:

[bash]

cd /home/webdata/thachpham.com/public_html

zip -r thachpham *

[/bash]

[root@hocvps ~]# ls -al /home/backup
total 15432
drwxr-xr-x 2 root root 4096 Sep 24 09:12 .
drwxr-xr-x 4 root root 4096 Sep 24 09:12 ..
-rw-r–r– 1 root root 15792563 Sep 24 09:12 thachpham.zip

2.2) Khôi phục source code từ file dự phòng

Để khôi phục dữ liệu hay còn gọi là xả nén dữ liệu dự phòng ra, bạn có thể sử dụng lệnh unzip nếu file đó là .zip mà bạn đã làm ở cách trên. Cấu trúc lệnh unzip là như sau:

[bash]unzip [tùy-chọn] [tên-file] -d [tên-đường-dẫn-cần-lưu][/bash]

Trong phần tùy chọn, mình hãy sử dụng nhất tùy chọn -o để ghi đè lên các file cũ trong thư mục cần giải nén nếu có.

Ví dụ mình có file thachpham.zip lưu ở /home/backup/ và cần giải nén ra thư mục /home/webdata/thachpham.com/public_html thì sẽ viết như sau:

[bash]unzip -o /home/backup/thachpham.zip -d /home/webdata/thachpham.com/public_html[/bash]

III. Sao lưu & Phục hồi database

Đối với databse thì cũng không hề khó lắm đâu, chỉ với 1 lệnh duy nhất. Tuy nhiên, lệnh backup và phục hồi sẽ hơi khác nhau một tí.

3.1) Backup database

Để backup database, chúng ta sẽ sử dụng lệnh mysqldump theo cấu trúc:

[bash]mysqldump -u [tên database username] -p [tên database cần backup] > [tên file cần lưu].sql[/bash]

Ví dụ mình có 1 database tên là dulieu1 với database username là dulieu1_user và cần backup ra một file tên là thachpham-data.sql thì viết lệnh như sau:

[bash]mysqldump -u dulieu1 -p dulieu1_user > thachpham-data.sql[/bash]

Nó sẽ hỏi mật khẩu của database user, bạn chỉ cần nhập vào là xong. Còn nếu bạn không muốn gõ mật khẩu sau khi chạy lệnh thì viết -p123456, 123456 là mật khẩu database.

Backup xong thì file .sql sẽ được lưu ở thư mục hiện tại mà bạn đang truy cập, muốn nó tự chuyển đi ra thư mục khác khi backup xong thì chỉ cần thêm đường dẫn cụ thể ở phần tên file .sql cần lưu.

3.2) Khôi phục database

Để khôi phục database ta không sử dụng mysqldump mà sẽ sử dụng lệnh mysql với cúa trúc:

[bash]mysql -u [tên database username] -p [tên database cần được khôi phục] < [tên file .sql cần khôi phục][/bash]

Ví dụ:

[bash]mysql -u dulieu1_user -p123456 dulieu1 < thachpham-data.sql[/bash]

Lưu ý là nếu database bạn đang có dữ liệu rồi thì tốt nhất hãy xóa data đó đi và tạo lại một database mới rồi hẵng import vì nó không hỗ trợ ghi đè.

Câu lệnh xóa database trong SQL là DROP DATABASE tên-data-cần-xóa;.

Lời kết

Ở bài này mình chỉ cần bạn biết căn bản thế thôi nhưng thao tác này rất quan trọng và hữu ích sau này nên nếu bạn gõ lệnh chưa quen thì hãy tập gõ cho nó quen dần.

Ở bài sau, mình sẽ hướng dẫn bạn tự tạo ra một dòng lệnh để hỗ trợ backup giống như ý của bạn thay vì gõ từng đoạn zip và mysqldump rất mất công và kém chuyên nghiệp.

4/5 - (1 bình chọn)
7 bình luận

Có thể bạn quan tâm

Hiện tại blog tạm đóng bình luận vì mình cần tập trung thời gian vào cập nhật bài viết. Bình luận sẽ mở ra cho đến khi mình sẵn sàng.