Sao lưu tự động MongoDB lên Google Drive

 

Giới thiệu

Bài hướng dẫn này sẽ cấu hình sao lưu tự động MongoDB lên Google Drive bằng việc sử dụng rclone trên hệ điều hành Ubuntu22.04



Yêu cầu thiết yếu

  • Cần 1 máy chủ đã cài đặt mongoDB. Nếu máy chủ chúng ta chưa cài đặt Mongo thì có thể tham khảo hướng dẫn sau : Hướng dẫn cài đặt MongoDB trên Ubuntu 22.04 LTS .

  • Và máy chủ cần cài đặt rclone. Nếu máy chủ chúng ta chưa cài đặt rclone thì có thể tham khảo hướng dẫn để cài đặt

  • Kết nối đồng bộ tài khoản Google drive với 1 thư mục trên máy chủ.

  • Cài đặt cronjob cho tự động chạy việc sao lưu db và đồng bộ lên drive.

Cấu hình backup database mongoDB

Backup MongoDB

Thực hiện tạo 1 thư mục để backup database của mongoDB:

bash (root)
 mkdir -p /123host/databasemongo_backup/
cd /123host/databasemongo_backup/

Đối với mongoDB thì chúng ta sẽ sử dụng cú pháp sau để tiến hành dump database của mongoDB:

bash (root)
mongodump -d my_db_name

Trong đó: - my_db_name: Là database mà chúng ta cần tiến hành dump.

Upload File lên Google Drive

Đối với rclone để tiến hành upload dữ liệu chúng ta sẽ sử dụng lệnh sau:

bash (root)
rclone copy name_file_upload name_remote:

Trong đó: - name_file_upload: Là file cần tiến hành upload - name_remote: Là tên của remote mà chúng ta đã tạo ở rclone.

Tạo script backup database mongoDB và upload lên Google Drive

Như vậy, bây giờ chúng ta có thể thực hiện chạy 1 đoạn script sau để tiến hành dump database và upload lên google drive của chúng ta. Để có thể kiểm tra tên của các database chúng ta sẽ sử dụng mongo shell và thực thi lệnh show dbs. Trong ví dụ này chúng ta sẽ backup Database có tên là admin.

Thực hiện tạo 1 file có tên backup.sh và sử dụng đoạn code sau:

/backup.sh
#!/bin/bash

# Get current time
time="$(date +'%Y_%m_%d')"

# Move to database folder
cd /123host/databasemongo_backup/

# Dump database
mongodump -d my_db_name -o $time

# Zip folder
zip -r $time.zip $time

# remove dump folder
rm -rf $time

# Push to rclone
rclone copy $time.zip name_remote:

# remove dump file
rm -rf $time.zip

Lưu ý: my_db_name và name_remote cần tiến hành thay đổi sang tên database và tên remote của rclone phù hợp với máy chủ của bạn.

Nếu như máy chủ của chúng ta chưa có zip thì tiến hành sử dụng lệnh sau để thực hiện cài đặt.

bash (root)
apt install zip -y

Để file script trên có thể thực thi cần phân quyền x hay còn gọi là quyền thực thi thực hiện phân quyền như sau:

bash (root)
chmod +x /root/backup.sh

Cấu hình cronjob

Trong trường hợp chúng ta cần hệ thống tự động backup hàng ngày, hay hàng giờ chúng ta sẽ sử dụng cronjob để cấu hình auto backup. Nếu máy chủ chúng ta chưa có cronjob thì thực hiện cài đặt như sau:

bash (root)
apt-get install cron -y

Bây giờ cài đặt cronjob để thực thi:

bash (root)
crontab -e

Đoạn cron sau sẽ thực hiện backup vào lúc 0h sáng mỗi ngày:

/tmp/crontab.AoCors/crontab
0 0 * * * /root/backup.sh

Thêm dòng script đó vào cuối file và lưu lại là xong.

Đăng nhận xét

0 Nhận xét

Liên hệ