Backup & Restore WordPress trên VPS – Tự viết script backup

0
8

Như trong phần 2 của serie này mình đã hướng dẫn, nếu khi backup chúng ta sẽ phải gõ thủ công như vậy, nên có thể nó hơi mất thời gian và bạn sẽ cần một giải pháp chuyên nghiệp hơn là làm thủ công.

[pro_ad_display_adzone id=”1623″]

Nếu bạn cần một giải pháp khác tốt hơn là gõ từng câu lệnh thủ công thì ở bài này mình sẽ hướng dẫn các bạn tự viết một Shell script để thực hiện công việc backup để khi nào cần backup, bạn chỉ cần gõ một câu lệnh nào đó mà bạn tự đặt ra thay vì sử dụng các lệnh thủ công.

Hơn nữa, cũng trong bài này mình sẽ hướng dẫn bạn cách đưa một Shell script bạn tự viết vào crontab để công việc backup diễn ra hoàn toàn tự động, như backup 1 ngày 1 lần chẳng hạn.

I. Giới thiệu về Shell Script

Shell Script là một ngôn ngữ lập trình kịch bản được thiết kế dành cho môi trường UNIX. Chẳng hạn bạn hay sử dụng các lệnh như cd, unzip,…tất cả lệnh đó đều là Shell script.

Chẳng hạn như bạn cần backup một thư mục nào đó và chuyển file backup đến một thư mục chỉ định, đồng thời xóa các file backup cũ thì nếu bạn tự gõ các lệnh đó thủ công thì bạn sẽ cần gõ khoảng 4, 5 lần. Tuy nhiên với ngôn ngữ Shell, bạn có thể lồng các tác vụ đó vào một file Shell script để khi cần làm việc kia thì bạn chỉ cần gõ một lệnh mà bạn đã đặt ra.

II. Cách viết Shell script để backup dữ liệu

Ở trong bài này mình sẽ không thể hướng dẫn bạn hết các câu lệnh trong Shell script mà sẽ chỉ hướng dẫn bạn cách viết một script backup dữ liệu mà thôi, nhưng hy vọng là bạn có thể ứng dụng nó vào các việc khác tốt hơn. Khi nào có thời gian, mình sẽ làm một serie về Shell script.

Để viết một Shell script, bạn có thể viết thẳng trên VPS bằng bộ gõ vi trên máy chủ hoặc phần mềm Trelby vì các editor mặc định ở Windows khi save file lại sẽ không đúng định dạng của UNIX.

2.1) Kịch bản của script

Trước khi lập trình thì dĩ nhiên ta phải nghĩ sẵn 1 kịch bản trong đầu. Để code trở nên dễ hiểu thì mình sẽ có một kịch bản như sau:

Gõ lệnh tên là tpbackup với cấu trúc sau để backup:

Sau khi gõ xong, hệ thống sẽ hiển thị thông báo đang backup và xuất ra dữ liệu bao gồm đường dẫn lưu file backup và tên file backup.

2.2) Bắt đầu viết script

Đầu tiên là bạn tạo ra một file với tên tpbackup trong thư mục /bin:

và bắt đầu viết các đoạn dưới đây:

Trong đó, dòng #! /bin/bash nghĩa là giúp UNIX xác định code của bạn sẽ được chạy bằng chương trình nào, ở đây ta sẽ dùng bash.

Ở  dưới mình có 2 biến là backup_folder (thư mục cần backup) và dest_folder (thư mục cần lưu file). Cả 2 biến này đều có giá trị là $1$2, hai giá trị này nghĩa là tham số mà bạn sẽ truyền vào khi gõ lệnh. Ví dụ lệnh của mình là:

Thì cái /home chính là tham số $1/tmp là tham số $2. Sở dĩ chúng ta nên sử dụng tham số thay vì định nghĩa giá trị tĩnh là sau này nếu cần backup thư mục nào đó thì khỏi cần tạo một script mới.

Tiếp tục, chúng ta tạo thêm 2 biến nữa như sau:

2 đoạn trên nghĩa là chúng ta khởi tạo cấu trúc tên file của backup để tránh bị trùng.

Tiếp tục viết đoạn sau:

Đoạn trên nghĩa là nó sẽ in ra tin nhắn cho biết hệ thống đang tiến hành backup và hành động ở đây là lệnh zip. Sau khi lệnh zip chạy xong, nó sẽ tiếp tục chạy các đoạn echo ở dưới để hiển thị thông báo.

Cuối cùng là lưu file này lại và CHMOD cho nó:

Ok, bây giờ hãy thử gõ lệnh tpbackup kèm theo thư mục cần backup và thư mục cần lưu giống thế này:

Kết quả trả về:

Xong rồi đấy :D. Bây giờ nếu bạn cần backup thì cứ chạy lệnh tpbackup và gõ đường dẫn cần lưu và đường dẫn cần backup vào là xong.

Toàn bộ code của script:

Nếu bạn cảm thấy hứng thú với Shell script thì có thể tự học tại Linux Shell Script Tutorial.

III. Tạo Cron Job để tự backup

Cron Job nghĩa là khái niệm chỉ một hành động nào đó được lặp đi lặp lại theo một chu kỳ nhất định. Ở bài này mình sẽ không giải thích rõ Cron Job là gì nên mình chỉ nói về việc sử dụng Cron Job để máy chủ tự động backup theo chu kỳ nhất định.

Lưu ý: Nên sử dụng tài khoản root để tạo cron.

Để tạo Cron Job, bạn hãy gõ lệnh sau (nếu chưa có thì phải cài đặt crontab nhé):

Ấn phím i để chuyển qua chế độ Insert và gõ:

Mình có mô hình giải thích như sau:

Như vậy, đoạn ở trên nghĩa là nó sẽ chạy đoạn lệnh tpbackup sau giờ thứ 15 (3h chiều) mỗi ngày.

Gõ xong ấn phím ESC và gõ wq! để lưu lại và thoát ra.

Để kiểm tra xem bạn đã thêm cronjob thành công hay chưa, hãy gõ lệnh xem nội dung của file /var/spool/cron/root:

Nếu nó hiện ra cái cronjob mà bạn vừa thêm thì thành công.

Để kiểm tra xem cron có chạy hay không, bạn cứ thay 00 15 * * * thành */1 ** * * * nghĩa là một phút nó chạy một lần. Sau đó chạy lệnh tail -f /var/log/cron để xem cronjob rồi đợi một phút xem nó có chạy hay không.

Bạn có thể tùy biến thêm cái này nhé. ?

Tips: Bạn có thể sử dụng công cụ Crontab Code Generator để hỗ trợ tạo crontab nhanh và chính xác.

Lời kết

Ở bài này tuy là mình tập trung vào phần backup dữ liệu nhưng cũng có pha thêm một chút về Shell scripting vì biết đâu được bạn sẽ hứng thú với nó. ?

Tuy vậy, việc này vẫn còn khá thủ công vì bạn cũng cần phải làm nhiều bước. Vậy thì hãy đọc tiếp phần tiếp để có giải pháp tối ưu nhất.

Nguồn Internet

Bài trước : Backup cách thủ công

Bài tiếp theo: Backup & Restore dữ liệu WordPress trên VPS với WP-CLI 

Backup & Restore WordPress trên VPS – Tự viết script backup
Đánh giá bài viết !

Nếu yêu thích LocDang.Com thì hãy đăng ký theo dõi để nhận tin tức mới nhất và đừng quên Like và Follow mình trên Facebook Twitter nhé.
Để lại ý kiến nhận xét tại đây !!

Chưa có bình luận nào cho bài viết này. Bạn hay là người đầu tiên nhé.

    • Xin chào, khách