HomeMáy chủ Linux

Hướng dẫn cài đặt Rclone để backup VPS lên Google Drive

Like Tweet Pin it Share Share Email

Backup website lên các dịch vụ lưu trữ đám mây là giải pháp lý tưởng hiện nay.

Bởi đơn giản nó miễn phí. Ví dụ như Google Drive miễn phí 15GB.

Đối với website WordPress, bạn có thể dùng plugin UpdraftPlus để backup lên GoogleDrive.

Nếu bạn đang sử dụng VPS bạn có thêm lựa chọn để backup VPS lên GoogleDrive.

Giải pháp ở đây là dùng Rclone.

Rclone là công cụ đồng bộ hóa dữ liệu giữa máy chủ và các dịch vụ lưu trữ đám mây. Nó hỗ trợ rất nhiều dịch vụ: Amazon S3, Amazon Drive, Google Drive, Google Cloud Storage, Openstack Swift / Rackspace cloud files / Memset, Memstore, Dropbox, Microsoft OneDrive…

Trong bài này mình sẽ hướng dẫn bạn sử dụng Rclone để backup VPS cài đặt EasyEngine.

Nếu bạn không rơi vào trường hợp này bạn có thể tham khảo thêm từ Google. Mình thấy có khá nhiều bài viết hướng dẫn về Rclone.

Do vậy bài này mình chỉ áp dụng cho VPS chạy Ubuntu sử dụng EasyEngine. Nhưng các câu lệnh hoàn toàn có thể chạy được với CentOS.

Bước 1: Cài đặt Rclone

Ở đây mình sẽ tải Rclone bản mới nhất tại thời điểm viết. Sau đó giải nén và copy vào thư mục /usr/sbin/.

Với bản Ubuntu 64 bit bạn chạy nhóm lệnh sau:

Bản Ubuntu 32 bit bạn sử dụng nhóm lệnh sau:

Bây giờ bạn có thể sử dụng lệnh rclone ở terminal rồi. Chi tiết các câu lệnh bạn xem ở đây.

Bước 2: Backup VPS lên Google Drive

Kết nối với Rclone với Google Drive

Bước này bạn chỉ làm một lần. Những lần sau thì bỏ qua.

Chạy lệnh sau:

Bạn sẽ nhận được thông báo no remotes found. Gõ n để tạo mới remote:

Tiếp theo bạn nhập vào tên cho remote. Tên này bạn sẽ sử dụng để dại diện cho kết nối tới dịch vụ lưu trữ đám mây ở script backup bên dưới.

Tiếp theo bạn chọn dịch vụ lưu trữ nào bạn muốn. Nhập vào số 8 để chọn Google Drive rồi Enter.

hướng dẫn sử dụng rclone 3

Client Id và Client Secret bạn để trống bằng cách ấn Enter.

Phần use auto config, bạn gõ n rồi Enter.

hướng dẫn sử dụng rclone 5

Bây giờ bạn copy cái đường dẫn loằng ngằng trong terminal và paste vào trình duyệt.

Trong trình duyệt, bạn click nut Allow để cho phép Rclone truy cập tới tài khoản Google Drive của bạn:

hướng dẫn sử dụng rclone 7

Google sẽ sinh ra cho bạn một đoạn mã. Nhiệm vụ của bạn là copy nó và paste vào terminal rồi Enter.

Nếu được hỏi Configure this is a team drive thì gõ n rồi enter. Tiếp theo gõ y để confirm mọi thứ OK.

hướng dẫn sử dụng rclone 9

Cuối cùng gõ q để thoát config của Rclone:

hướng dẫn sử dụng rclone 10

Bây giờ bạn test thử với câu lệnh sau (thay remote_name bằng tên remote bạn tạo khi kết nối với Google Drive): rclone lsd remote_name: 

Nếu thành công câu lệnh trên sẽ liệt kê các thư mục trong Google Drive của bạn.

Script backup VPS và upload lên Google Drive

Tạo một file script có tên là backup.sh trong thư mục /root/: ​

Nếu nano chưa được cài thì bạn sử dụng lệnh sau để cài đặt: apt-get install nano

Copy toàn bộ file script bên dưới vào file backup.sh. Một số chỗ bạn cần thay đổi như sau:

SERVER_NAME: tên thư mục chứa backup trên GoogleDrive.

Password: bạn thay bằng password của bạn. Đối với EasyEngine bạn sử lệnh này để lấy mật khẩu tài khoản root MySQL: cat /etc/mysql/conf.d/my.cnf

Đoạn này a2hostingvps:$SERVER_NAME: a2hostingvps là tên remote của mình bạn thay bằng tên remote bạn đã tạo ở bước kết nối Google Drive.

Lưu ý: script có sử dụng lệnh zip để nén. Bạn cài đặt zip với lệnh sau trước khi chạy script: apt-get install zip

Trong đoạn code có một điểm bạn cần lưu ý trong câu lệnh move của rclone mình có thêm thông số –transfers=1. Thông số này  có nghĩa là rclone sẽ move lần lượt từng file lên google drive. Không có thông số này rclone sẽ move nhiều file cùng lúc. VPS của mình ram chỉ 512MB nên khi move nhiều file nặng cùng lúc service rclone bị kill giữa chừng. 252

Cấp quyền thực thi cho file backup.sh

Bây giờ bạn chỉ chạy lệnh sau để backup:

Để kiểm tra xem backup đã thành công thực sự hay chưa bạn có thể vào Google Drive check lại.

Tạo cron job tự động chạy backup

Chạy câu lệnh sau để mở cron job: ​

Paste dòng sau vào cron job

Câu lệnh sau có nghĩa: 2h sáng hàng ngày sẽ backup VPS và lưu trên Google Drive.

Bước 3: Tải backup từ Google Drive và khôi phục lại website

Trong trường hợp bạn muốn khôi phục lại website, bạn làm như sau:

Đầu tiên bạn tải toàn bộ backup về thư mục /root (nhớ thay tên remote bằng tên remote của bạn và diretory_name bằng thư mục trên Google Drive bằng tên của bạn).

Ví dụ phía dưới là các file backup trên Google Drive của mình:

hướng dẫn sử dụng rclone 12

File khamphaso.com.zip sẽ chứa source code của website. Thư mục mysql sẽ chứa file sql nén ở định dạng .gz.

Khi bạn tải về thư mục /root. Đầu tiên bạn giải nén source code bằng lệnh unzip:

Sau đó copy đè vào thư mục website:

Tiếp theo bạn khôi phục db. Đầu tiên bạn giải nén file sql bằng lệnh sau:

Di chuyển tới thư mục gốc của website và sử dụng lệnh import của WP CLI (cái này đã được cài đặt khi bạn cài đặt EasyEngine theo hướng dẫn của mình):

Thế là xong. Bạn đã restore thành công website.

Lời kết

Qua bài viết bạn đã biết thêm một cách backup website trên VPS sử dụng EasyEngine.

Nếu bạn gặp khó khăn gì hãy để lại bình luận bên dưới.

Xem bài trong seriesPhần trước: Hướng dẫn chuyển website từ Shared Host về máy chủ Linux cài đặt EasyEngine

2
Để lại bình luận

1 Comment threads
1 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Recent comment authors
newest oldest
Guest

if [ -d “${D}” ]; then #If a directory
domain=${D##*/} # Domain name
echo “- “$domain;

biến domain có nghĩa là gì vậy ạ? Và viets nó bằng cái của mình được không ạ?

Scroll Up
Share This