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ế bằng phiên bản Rclone mà bạn đã tải xuống.



NGUYENCANHSON.COM
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ế bằng phiên bản Rclone mà bạn đã tải xuống.



    NGUYENCANHSON.COM
    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 [email protected] -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 [email protected] -L 53682:127.0.0.1:53682

    Nếu bạn đổi port SSH thì lệnh sẽ có dạng như sau

    ssh [email protected] -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
    tom 2023 02 17 09.49.23
    • 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.

    tom 2023 02 17 09.38.59

    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.

    tom 2023 02 17 09.39.12

    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)



    NGUYENCANHSON.COM
    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



    NGUYENCANHSON.COM
    #!/bin/bash
    #Auth: NGUYENCANHSON.COM
     
    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



    NGUYENCANHSON.COM
    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.



    NGUYENCANHSON.COM
    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ử.

    tom 2023 02 23 11.32.49
    Hướng dẫn backup dữ liệu web từ DirectAdmin lên Google Drive 6

    Sau khi script chạy xong, dữ liệu đã được backup lên Drive hoàn tất.

    image 67
    Hướng dẫn backup dữ liệu web từ DirectAdmin lên Google Drive 7

    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!