Backup & Restore WordPress trên VPS – Backup với WP-CLI

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

Trong serie VPS căn bảnCentminmod & WordPress chắc các bạn đều đã biết qua công cụ WP-CLI vốn được dùng để quản trị/cài đặt WordPress trên môi trường UNIX rất mạnh mẽ và dễ tùy biến.

Thế nhưng bạn có biết rằng, ngoài các dòng lệnh có sẵn của WP-CLI, nó còn có rất nhiều dòng lệnh khác mà nếu bạn cài một plugin có hỗ trợ lệnh cho WP-CLI, bạn có thể xem thêm ở danh sách plugin hỗ trợ cho WP-CLI.

Trong đó, có 3 plugin chuyên về Backup có hỗ trợ command line đó BackUpWordPress, BackWPUpBackupBuddy. Do bạn đã sử dụng VPS rồi nên tài nguyên để backup không còn là vấn đề lớn nữa nên trong bài này mình sẽ hướng dẫn bạn sử dụng WP-CLI kết hợp với plugin BackWPUp vì đơn giản là nó miễn phí nhưng rất mạnh mẽ.

I. Sử dụng BackWPUp

Đầu tiên là bạn cần cài plugin BackWPUp vào website và tiến hành tạo Job cho nó. Trong phần tạo Job này cũng rất đơn giản và hơn nữa mình đã có hướng dẫn tại đây nên sẽ không nói thêm qua ở đây.

Sau khi tạo Job, bạn cần để ý rằng mỗi Job sẽ có một ID riêng biệt như sau:

backwpup-jobid

Hoặc nếu bạn đã cài WP-CLI rồi, thì hãy cd vào thư mục lưu mã nguồn WordPress trên VPS và gõ lệnh wp backwpup jobs để xem danh sách các job đang có.

  cd /home/webdata/cddos.net/public_html  wp backwpup jobs  Warning: The `wp backwpup jobs` command has an invalid synopsis part: jobs List of jobs ---------------------------------------------------------------------- ID: 1 Name: Test Job

Sau để tiến hành chạy một job, bạn gõ lệnh:

wp backwpup start --jobid=1

Trong đó, số 1 là ID của job cần chạy. Kết quả sẽ trả về như sau:

  [INFO] BackWPup version 3.1.2; A project of Inpsyde GmbH [INFO] WordPress version 4.0 [INFO] Blog url: https://onet.vn/ [INFO] BackWPup job: Test Job; DBDUMP+FILE+WPPLUGIN [INFO] BackWPup no automatic job start configured [INFO] BackWPup job started form commandline interface [INFO] PHP ver.: 5.4.33; cli; Linux [INFO] Maximum PHP script execution time is 0 seconds [INFO] MySQL ver.: 5.5.39 [INFO] curl ver.: 7.19.7; NSS/3.14.0.0 [INFO] Temp folder is: /home/webdata/cddos.net/public_html/wp-content/uploads/backwpup-4a3137-temp/ [INFO] Logfile is: /home/webdata/cddos.net/public_html/wp-content/uploads/backwpup-4a3137-logs/backwpup_log_4a3137_2014-09-27_12-52-31.html [INFO] Backup type is: archive [INFO] Backup file is: /home/webdata/cddos.net/public_html/wp-content/uploads/backwpup-4a3137-backups/backwpup_4a3137_2014-09-27_12-52-31.tar.gz [27-Sep-2014 12:52:31] 1. Try to backup database ... [27-Sep-2014 12:52:31] Connected to database dulieu1 on localhost [27-Sep-2014 12:52:31] Backup database table "wp_automated_links" with "0" records [27-Sep-2014 12:52:31] Backup database table "wp_commentmeta" with "0" records [27-Sep-2014 12:52:31] Backup database table "wp_comments" with "1" records [27-Sep-2014 12:52:31] Backup database table "wp_links" with "0" records [27-Sep-2014 12:52:31] Backup database table "wp_options" with "1252" records [27-Sep-2014 12:52:31] Backup database table "wp_postmeta" with "4" records [27-Sep-2014 12:52:31] Backup database table "wp_posts" with "5" records [27-Sep-2014 12:52:31] Backup database table "wp_prli_clicks" with "0" records [27-Sep-2014 12:52:31] Backup database table "wp_prli_groups" with "0" records [27-Sep-2014 12:52:31] Backup database table "wp_prli_link_metas" with "0" records [27-Sep-2014 12:52:31] Backup database table "wp_prli_links" with "1" records [27-Sep-2014 12:52:31] Backup database table "wp_term_relationships" with "2" records [27-Sep-2014 12:52:31] Backup database table "wp_term_taxonomy" with "2" records [27-Sep-2014 12:52:31] Backup database table "wp_terms" with "2" records [27-Sep-2014 12:52:31] Backup database table "wp_usermeta" with "15" records [27-Sep-2014 12:52:31] Backup database table "wp_users" with "1" records [27-Sep-2014 12:52:31] Added database dump "dulieu1.sql" with 441.11 kB to backup file list [27-Sep-2014 12:52:31] Database backup done! [27-Sep-2014 12:52:31] 1. Trying to make a list of folders to back up ... [27-Sep-2014 12:52:31] 453 folders to backup. [27-Sep-2014 12:52:31] 1. Trying to generate a file with installed plugin names ... [27-Sep-2014 12:52:31] Added plugin list file "Hoc-VPS.pluginlist.2014-09-27.txt" with 1.00 kB to backup file list. [27-Sep-2014 12:52:31] 1. Trying to generate a manifest file ... [27-Sep-2014 12:52:31] Added manifest.json file with 4.24 kB to backup file list. [27-Sep-2014 12:52:31] 1. Trying to create backup archive ... [27-Sep-2014 12:52:31] Compressing files as TarGz. Please be patient, this may ta
ke a moment. [27-Sep-2014 12:52:37] Backup archive created. [27-Sep-2014 12:52:37] Archive size is 14.10 MB. [27-Sep-2014 12:52:37] 3614 Files with 41.86 MB in Archive. [27-Sep-2014 12:52:37] Job done in 6 seconds.

Và bây giờ bạn vào phần WordPress Admin -> BackWPUp -> Backups sẽ thấy file backup hiển thị trong đây luôn.

backwpup-backups

Cũng phải nói thêm rằng, nếu bạn có thiết lập Job Destination để gửi file qua bên dịch vụ thứ 3 thì khi chạy lệnh này nó cũng sẽ gửi file đi cho bạn luôn. Dĩ nhiên bạn không thể sử dụng các phương thức gửi file lên các trang như Dropbox, Amazon S3, Rackspace nếu bạn sử dụng localhost hoặc một domain ảo thiết lập trong file hosts, vì nó sẽ cần kiểm tra domain trước khi nhận dữ liệu.

Một số lệnh khác của BackWPUp

Ngoài lệnh start để thực thi Job thì nó còn có một số câu lệnh khác mà bạn có thể xem bằng cách gõ lệnh wp backwpup. Mình xin giải thích một số dòng lệnh như sau:

  • wp backwpup abort – hủy bỏ các job đang làm việc
  • wp backwpup jobs – Xem danh sách các jobs
  • wp backwpup start –jobid=<JOBID> – Thực thi một job nào đó, mình đã nói ở phía trên
  • wp backwpup working – Xem danh sách job đang chạy

III. Lệnh backup database trong WP CLI

WP CLI có hỗ trợ lệnh wp db export để bạn backup ra database đang sử dụng ra thành file .sql. Do đó nếu bạn chỉ cần backup database thì hãy cd vô thư mục của website cần backup và chạy lệnh này là xong.

  [[email protected] public_html]# wp db export Success: Exported to dulieu1.sql

Leave your comment