Hướng dẫn dùng Rclone sao lưu VPS qua Google Drive, One Drive,…
Đăng nhập, mở SSH terminal
Chạy lệnh cài Rclone lên VPS
Cài đặt RCLONE bản mới nhất với bất kỳ hệ điều hành nào:
1 |
curl https://rclone.org/install.sh | sudo bash |
Ngoài ra bạn cũng có thể tham khảo ở trang chủ của RCLONE tại đây
Chạy lệnh config
1 |
rclone config |
Nếu trên VPS của bạn chưa tạo kết nối nào thì sẽ nhận được thông báo No remotes found - make a new one
Nhập n
rồi ấn Enter
để tạo kết nối mới
Dòng name bạn nhập tên kết nối là VPS1
hoặc bất cứ tên nào cũng được (có phân biệt chữ hoa và thường).
Một danh sách các cloud server hỗ trợ hiện ra. Nhập vào 20
hoặc 36
rồi ấn Enter
để chọn kết nối Google Drive hoặc One Drive (tùy phiên bản Rclone mà số này có thể thay đổi).
Tiếp theo nó sẽ hỏi Client ID
và Client Secret
, bạn để trống rồi ấn Enter
.
Đến phần Scope that rclone should use when requesting access from drive.
Bạn chọn 1 – Full access all files….
Để cấp quyền truy cập toàn bộ file trên Google Drive.
Tiếp theo, mục service_account_file
bạn để trống và ấn Enter
Nó sẽ hỏi Edit advance config?
bạn nhập n
rồi ấn Enter
.
Use web browser to automatically authenticate rclone with remote?
bạn nhập n
rồi ấn Enter
.
Nếu làm sai, gõ rclone config
chọn e
chọn 1
làm lại từ đầu
Tải zip Rclone về ổ D máy tính, giải nén vào thư mục D:\Rclone\
Đăng nhập và mở sẵn tài khoản
Googe hoặc One Drive trên trình duyệt
Mở CMD trên máy tính, gõ lệnh di chuyển về ổ D:
chạy lệnh sau
D:\Rclone\rclone.exe authorize "drive"
nếu kết nối Google
D:\Rclone\rclone.exe authorize "onedrive"
nếu kết nối One Drive
Rclone sẽ mở trình duyệt lên, bạn cho phép Rclone kết nối
với Google Drive hoặc One Drive
Khi kết nối thành công, Rclone sẽ sinh 1 đoạn mã token
trên CMD, bạn copy dán vào SSH teminal 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
.
Cuối cùng gõ q
để thoát config của Rclone:
Bây giờ bạn test thử với câu lệnh sau (thay remote_name
bằng tên VPS1
bạn tạo khi kết nối với Google Drive):
1 |
rclone lsd remote_name: |
Ví dụ:
Liệt kê toàn bộ thư mục.
1 |
rclone lsd VPS1: |
1 |
rclone about VPS1: |
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
Bash Script backup Directadmin lên Google Drive
Tạo file backup.sh tại thư mục /root/
Tạo một file script có tên là backup.sh trong thư mục /root/:
nano /root/backup.sh
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
#!/bin/bash SERVER_NAME=BackupVPS1; CONFIG_NAME=VPS1; TIMESTAMP=$(date +"%F"); BACKUP_DIR="/home/admin/admin_backups/"; SECONDS=0; # Kiểm tra cấu hình Rclone và thư mục backup if ! rclone listremotes | grep -q "$CONFIG_NAME:"; then echo "Cấu hình rclone không tồn tại. Vui lòng kiểm tra lại CONFIG_NAME."; exit 1; fi if [ ! -d "$BACKUP_DIR" ]; then echo "Thư mục backup không tồn tại: $BACKUP_DIR. Kiểm tra lại đường dẫn."; exit 1; fi size=$(du -sh $BACKUP_DIR | awk '{ print $1}'); echo "Bắt đầu Backup Hệ thống $BACKUP_DIR"; # Di chuyển dữ liệu lên Cloud rclone move $BACKUP_DIR "$CONFIG_NAME:$SERVER_NAME/$TIMESTAMP" -v >> /root/backup.log 2>&1; # Dọn dẹp thư mục local rm -rf $BACKUP_DIR/*; # Xóa bản backup cũ hơn 2 tuần trên Cloud rclone -q --min-age 2w delete --rmdirs "$CONFIG_NAME:$SERVER_NAME"; rclone cleanup "$CONFIG_NAME:"; duration=$SECONDS; echo "Tổng Kích thước là: $size, Backup lên Cloud trong $(($duration / 60)) Phút và $(($duration % 60)) giây." # Đặt múi giờ timedatectl set-timezone Asia/Ho_Chi_Minh; echo "Múi giờ và Ngày Giờ trên VPS của Bạn là:"; timedatectl; chmod 600 /root/backup.log echo "Hoàn tất"; |
SERVER_NAME=BackupVPS1: tạo thư mục chứa backup tên BackupVPS1 trên GoogleDrive.
CONFIG_NAME=VPS1: tên remote VPS1 bạn thay bằng tên remote bạn đã tạo ở bước kết nối Google Drive.
BACKUP_DIR=”/home/admin/admin_backups/”: đường dẫn chứa file backup trên VPS (tùy Panel sẽ khác nhau)
Nhấn Ctrl+O rồi ấn Enter để lưu và Ctrl+X để thoát.
Cấp quyền thực thi cho file backup.sh
chmod +x /root/backup.sh
Nếu /home/admin/admin_backups/ đã có file
Bây giờ bạn test thử backup, hãy chạy lệnh sau:
/root/backup.sh
Để 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
Tạo Cronjob tự động backup Directadmin hằng ngày
Thường sẽ chọn script chạy lúc về đêm, khi đó lượng visit vào website ít nên không ảnh hưởng quá nhiều đến trải nghiệm của khách hàng khi sử dụng web.
Chạy câu lệnh sau để mở cron job:
EDITOR=nano crontab -e
Paste dòng sau vào cron job
0 5 * * * /root/backup.sh > /root/backup.sh.log 2>&1
Câu lệnh sau có nghĩa: 5h sáng hàng ngày sẽ backup VPS và lưu trên Google Drive.
Nhấn Ctrl+O rồi ấn Enter để lưu và Ctrl+X để thoát.
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).