NỘI DUNG
Hướng dẫn backup dữ liệu web từ DirectAdmin lên Google Drive – Bài viết này cung cấp hướng dẫn chi tiết và đầy đủ về cách sao lưu dữ liệu web từ DirectAdmin và lưu trữ trên Google Drive một cách an toàn và tiện lợi. Đồng thời, bài viết cũng giải thích những khái niệm cơ bản về backup dữ liệu và cách tối ưu hóa quá trình backup. Với bài viết này, bạn có thể tự tin sao lưu dữ liệu của mình một cách đúng cách và hiệu quả
Bước 1: Cài đặt Rclone
Rclone là một công cụ quản lý đám mây có thể được sử dụng để đồng bộ hóa dữ liệu giữa máy tính và các dịch vụ lưu trữ đám mây như Google Drive, Dropbox, Amazon S3, OneDrive, và nhiều hơn nữa. Để cài đặt Rclone trên Linux, bạn có thể làm theo các bước sau:
- Tải xuống gói cài đặt Rclone:
Truy cập trang web chính thức của Rclone để tải xuống gói cài đặt phù hợp với hệ điều hành Linux của bạn. Bạn có thể tìm thấy tất cả các phiên bản Rclone tại địa chỉ https://rclone.org/downloads/.
Lưu ý thay thế <version>
bằng phiên bản Rclone mà bạn đã tải xuống.
wget https://downloads.rclone.org/v1.61.1/rclone-v1.61.1-linux-amd64.zip unzip rclone--linux-amd64.zip
- Sao chép tệp thực thi Rclone vào thư mục /usr/bin:
Sau khi giải nén gói cài đặt, bạn có thể sao chép tệp thực thi Rclone vào thư mục /usr/bin của hệ thống bằng lệnh sau:
Lưu ý thay thế <version>
bằng phiên bản Rclone mà bạn đã tải xuống.
sudo cp rclone--linux-amd64/rclone /usr/bin/
Bước 2: Cấu hình Rclone
- Tạo SSH Tunne
Nếu bạn đang trong cửa sổ SSH bạn hãy logout ra. Sau đó bạn tiến hành đăng nhập lại SSH vào VPS với câu lệnh như sau (Với Windows các bạn sử dụng CMD để SSH) để tạo một Tunne mới
ssh root@xx.yy.zz.xx -L 53682:127.0.0.1:53682
Với những bạn không sử dụng tài khoản root mà sử dụng tài khoản con tên quandt
hoặc tài khoản tự tạo thì thay root bằng user của các bạn. Ví dụ:
ssh quandt@xx.yy.zz.xx -L 53682:127.0.0.1:53682
Nếu bạn đổi port SSH thì lệnh sẽ có dạng như sau
ssh root@xx.yy.zz.xx -p 6789 -L 53682:127.0.0.1:53682
Trong đó:
- 6789 là port SSH của bạn.
- xx.yy.zz.xx bằng IP VPS của các bạn
- Cấu hình Rclone
Bây giờ bạn thực hiện chạy lại lệnh rclone config
để bắt đầu setup từ đầu. Bên dưới là thông tin mình thực hiện cấu hình và bạn hãy chú ý đến các dòng mình highlight, đó là các dòng quan trọng trong các bước cấu hình.
Và dòng Remote config Use auto config?
bắt buộc bạn phải chọn Y (Yes) để hoàn tất.
root@sv:~# rclone config
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> remote
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / 1Fichier
\ "fichier"
......................
13 / Google Drive
\ "drive"
Storage> 13
** See help for drive backend at: https://rclone.org/drive/ **
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a string value. Press Enter for the default ("").
client_id> Nhấn Enter
Google Application Client Secret
Setting your own is recommended.
Enter a string value. Press Enter for the default ("").
client_secret> Nhấn Enter
Scope that rclone should use when requesting access from drive.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / Full access all files, excluding Application Data Folder.
\ "drive"
2 / Read-only access to file metadata and file contents.
\ "drive.readonly"
/ Access to files created by rclone only.
...........................
scope> 1
ID of the root folder
Leave blank normally.
Fill in to access "Computers" folders (see docs), or for rclone to use
a non root folder as its starting point.
Note that if this is blank, the first time rclone runs it will fill it
in with the ID of the root folder.
Enter a string value. Press Enter for the default ("").
root_folder_id> Nhấn Enter
Service Account Credentials JSON file path
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Enter a string value. Press Enter for the default ("").
service_account_file> Nhấn Enter
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n (Chọn N)
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> y (Chọn Y)
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=iFXszgBgG7qX9I2hejnq2w
Log in and authorize rclone for access
Waiting for code...
Got code
Configure this as a team drive?
y) Yes
n) No
y/n> n
--------------------
[remote]
type = drive
scope = drive
token = {"access_token":"ya29.a0AVvZVsol4MSZ_EluGXJVKRrZvaAO5JotII-T_sqKjVueX97L4AeUEZ_oYFcEPZEAqxyd3m3OPneiezJW5WCTGHZzYnGzLcsihkX9m0rFWVwZcpz8g5KJu-Itq_w6af_nMP8NtwIqJswmG1iOMQoEzrfvO_rfaCgYKAVYSARESFQGbdwaI7g_XnLnvHsFWo8rEbjwvww0163","token_type":"Bearer","refresh_token":"1//0egWT4wsFoweOCgYIARAAGA4SNwF-L9IrSNfh1nTzqbzGbjZtqPNvX8vRQ04a6RVR4CdEbiixscA8arQ5sOMF358xK68yL6U-VUk","expiry":"2023-02-17T04:38:46.338221125+01:00"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
remote drive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>
Khi bạn nhận được đường link http://127.0.0.1:53682/xxxx bạn hãy copy nó dán vào trình duyệt sau đó chọn tài khoản Google cần sử dụng. Ở bước này bạn cứ nhận Cho phép hoặc Tiếp tục để hoàn tất.
Và cuối cùng bạn nhận được thông báo Success! là hoàn tất bước tiếp lập. Ngay lúc này Rclone của bạn đã được kết nối và sẵn sàng sử dụng.
Bước 3: Tạo script backup
Bạn thực hiện tạo script sau để backup dữ liệu (Database và Source Code)
vi /root/rclone-backup.sh
Sau đó copy script sau dán vào file. Và trong scrip này bạn cần thay MYSQL_PASSWORD="XXX"
bằng mật khẩu root của MySQL vào chổ XXX
#!/bin/bash #Auth: DOTRUNGQUAN.INFO SERVER_NAME=$(hostname) && echo "SERVER_NAME=${SERVER_NAME}" >> /etc/environment TIMESTAMP=$(date +"%F") BACKUP_DIR="/root/backup/$TIMESTAMP" MYSQL_USER="root" MYSQL=/usr/bin/mysql MYSQL_PASSWORD="XXX" ## Nhap Pass Root MYSQL MYSQLDUMP=/usr/bin/mysqldump SECONDS=0 mkdir -p "$BACKUP_DIR/mysql" echo "Backup Database In Process"; databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql)"` for db in $databases; do $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD $db | gzip > "$BACKUP_DIR/mysql/$db.gz" done echo "Backup Database Successful"; echo ''; echo "Backup Website In Process"; # Loop through /home directory for D in /home/*/domains/*/public_html/; do if [ -d "${D}" ]; then #If a directory domain=$(echo "$D" | cut -d"/" -f4) # Domain name user=$(echo "$D" | cut -d"/" -f3) # User name echo "- $user/$domain"; zip -r $BACKUP_DIR/$user-$domain.zip "$D" -q -x "$D/wp-content/cache/**/*" #Exclude cache fi done echo "Backup Website Successful"; echo ''; echo "Dang tien hanh Backup len Google Drive"; /usr/sbin/rclone move $BACKUP_DIR "remote:$SERVER_NAME/$TIMESTAMP" >> /var/log/rclone.log 2>&1 #remote: remote config name created in previous step. # Clean up rm -rf $BACKUP_DIR #Delete backup directory on VPS /usr/sbin/rclone -q --min-age 2w delete "remote:$SERVER_NAME" #Remove all backups older than 2 week on Google Drive Backup Directory /usr/sbin/rclone -q --min-age 2w rmdirs "remote:$SERVER_NAME" #Remove all empty folders older than 2 week Google Drive Backup Directory /usr/sbin/rclone cleanup "remote:" #Cleanup Trash , Delete all files in trash directory echo "Da dua tat ca du lieu len Gooogle Drive hoan tat"; echo ''; duration=$SECONDS echo "Total $size, $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
Phân quyền thực thi cho script
chmod +x /root/rclone-backup.sh
Bước 4: Đặt Cron backup tự động
Bạn sử dụng lệnh crontab -e
để vào cửa sổ và thêm cron sau.
Trong cron này hệ thống sẽ tự chạy backup vào 1h sáng hằng ngày.
0 1 * * * bash /root/rclone-backup.sh >/dev/null 2>&1
Bước 5: Kiểm tra
Bây giờ mình sẽ thực hiện chạy script để test thử.
Sau khi script chạy xong, dữ liệu đã được backup lên Drive hoàn tất.
Như vậy, trong bài viết này chúng ta đã tìm hiểu cách backup dữ liệu web từ DirectAdmin lên Google Drive một cách đơn giản và hiệu quả. Đầu tiên, chúng ta đã tìm hiểu cách tạo một tài khoản Google Drive và kết nối nó với DirectAdmin. Sau đó, chúng ta đã cùng nhau thực hiện các bước để tạo một kịch bản backup và lưu trữ nó trên Google Drive. Cuối cùng, chúng ta đã tìm hiểu cách tối ưu hóa quá trình backup và giải quyết các vấn đề phát sinh trong quá trình backup dữ liệu.
Việc backup dữ liệu là rất quan trọng để đảm bảo an toàn và bảo mật cho dữ liệu của chúng ta. Với việc lưu trữ dữ liệu trên Google Drive, chúng ta có thể yên tâm về việc dữ liệu của chúng ta được bảo vệ tốt và có thể truy cập từ bất cứ đâu với một tài khoản Google.
Hy vọng rằng bài viết này đã cung cấp cho bạn các thông tin hữu ích và giúp bạn tự tin hơn trong việc backup dữ liệu của mình. Chúc bạn thành công!