Trong việc vận hành máy chủ cũng như bất kỳ dịch vụ CNTT nào khác, việc backup là điều vô cùng cấp thiết. Trong bài nay, mình sẽ hướng dẫn các bạn các để backup tự động CSDL MongoDB và MySQL lên tài khoản Google Drive trên máy chủ Linux Server.
Để thực hiện được các bạn cần có như sau:
1. Tài khoản Google Drive (chính là gmail của các bạn)
2. Cài đặt, cấu hình backup và đồng bộ qua phần mềm Grive2 trên Linux Server
3. Có đủ quyền để thiết lập lịch (crontab) chạy tự động trên Linux Server
Chúng ta sẽ thực hiện lần lượt qua các bước sau:
1. Cài đặt và cấu hình Grive2 trên Linux Server
sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt-get update sudo apt-get install grive
mkdir -p ~/backup
cd ~/backup
grive -a
Sau khi chạy lệnh trên, một URL sẽ được hiển thị trong terminal của bạn, hãy sao chép URL này và dán nó vào một trình duyệt web. Trong trang hiển thị ra, bạn sẽ được yêu cầu cấp quyền truy cập cho Google Drive của bạn và sau khi nhấp vào “Cho phép truy cập”, mã xác thực sẽ được hiển thị. Bạn cần sao chép mã này và dán mã vào terminal nơi bạn vừa chạy lệnh.
grive -s SUBFOLDER
#!/bin/bash now="$(date +'%Y_%m_%d-%H_%M_%S')" # truy xuất đến thư mục backup (thư mục tạo ra phía trên đã đồng bộ với google drive) cd /home/tuanna/backup/mongodb/ # Xóa những file backup cũ hơn 3 ngày (tùy chọn) find -mtime +3 -type f -delete # Backup CSDL bằng dòng lệnh mongodump -d database_name -o $now #đồng bộ lên google drive grive -s mongodb
=> Tạo ra thư mục mongodb trong thư mục backup để dễ quản lý.
=> Lưu đoạn code trên vào file đặt tên là mongodb.sh
#!/bin/bash now="$(date +'%Y_%m_%d-%H_%M_%S')" # truy xuất đến thư mục backup (thư mục tạo ra phía trên đã đồng bộ với google drive) cd /home/tuanna/backup/mysql/ # Xóa những file backup cũ hơn 3 ngày (tùy chọn) find -mtime +3 -type f -delete # Backup CSDL bằng dòng lệnh mysqldump database_name > /home/tuanna/backup/mysql/$now.sql #đồng bộ lên google drive grive -s mysql
crontab -e
no crontab for tuanna - using an empty one Select an editor. To change later, run 'select-editor'. 1. /bin/ed 2. /bin/nano <---- easiest 3. /usr/bin/code 4. /usr/bin/vim.basic 5. /usr/bin/vim.tiny Choose 1-5 [2]:
Mặc định chưa có crontab nào được tạo, bạn chọn các tùy chọn trình soạn thảo từ 1->5, ở đây mình chọn lựa chọn 2 cho dễ sử dụng, màn hình hiển thị như sau:
Tại cửa sổ này, các bạn định nghĩa ra các crontab theo cấu trúc như sau:
Theo cấu trúc trên, mình có thể đặt lịch ví dụ như sau:
0 1 * * * /home/tuanna/backup/mongodb.sh 0 1 * * * /home/tuanna/backup/mysql.sh
Theo mặc định, Crontab sẽ gửi email cho người thực thi cron, nếu bạn muốn tắt chức năng gửi email này đi thì hãy thêm đoạn sau vào cuối dòng
/dev/null 2>&1
Sau cùng, bạn lưu lại bằng cách nhấn tổ hợp Ctrl X và chọn save. Hai lệnh trên sẽ thực hiện chạy tự động các file bash được định nghĩa trước đó vào lúc 1h sáng mỗi ngày.
Để kiểm tra danh sách các crontab đang có trên hệ thống, bạn sử dụng lệnh sau:
crontab -l
Chúc các bạn thành công.