close

Hướng dẫn tự động backup n8n và OpenClaw lên Google Drive

Tác giả: Đông Tùng Ngày đăng: 16/10/2026 Chuyên mục: n8n OpenClaw
Disclosure
Website Tino blog được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Tino Group có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Tino blog sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại Tino blog được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Cách đơn giản và ổn định nhất để auto backup n8n và OpenClaw lên Google Drive là chạy một script trên VPS mỗi đêm bằng cron: script xuất dữ liệu n8n, tạo bản sao lưu OpenClaw bằng lệnh chính thức openclaw backup create, rồi dùng rclone đẩy lên Google Drive. Cùng tìm hiểu cách thực hiện chi tiết qua bài viết dưới đây nhé!

Có thể backup n8n và OpenClaw từ 2 VPS lên cùng Google Drive không?

Có. Hai VPS có thể sử dụng cùng một tài khoản Google Drive làm nơi lưu trữ bản backup mà không ảnh hưởng đến hoạt động của nhau.

Ví dụ, hệ thống gồm:

  • VPS 1: Cài đặt n8n bằng Docker, dùng để chạy các workflow tự động.
  • VPS 2: Cài đặt OpenClaw, dùng để vận hành AI Agent.
  • Google Drive: Tài khoản lưu trữ tập trung các bản sao lưu.
Có thể backup n8n và OpenClaw từ 2 VPS lên cùng Google Drive không?
Có thể backup n8n và OpenClaw từ 2 VPS lên cùng Google Drive không?

Mỗi VPS đảm nhiệm một quy trình riêng:

Tiêu chíVPS 1 – n8nVPS 2 – OpenClaw
Phần mềm sao lưuRcloneRclone
Dữ liệu cần sao lưuThư mục .n8n và dữ liệu liên quanState, cấu hình, Agent, sessions, workspace
Công cụ tạo backupScript Bash kết hợp DockerOpenClaw Backup CLI
Công cụ lập lịchCronCron
Thư mục Google DriveAI-Backups/n8nAI-Backups/openclaw

Hai VPS không cần có chung địa chỉ IP hoặc cấu hình phần cứng. Điều kiện quan trọng là cả hai có kết nối Internet và được cấp quyền truy cập tài khoản Google Drive.

Cần chuẩn bị gì trước khi thiết lập Auto Backup?

Để thực hiện, bạn cần:

  • Hai VPS Linux sử dụng Ubuntu hoặc Debian, đã cài n8n và OpenClaw tương ứng.
  • Quyền truy cập SSH vào từng VPS thông qua Xshell.
  • Một tài khoản Google có đủ dung lượng Drive.
  • Quyền cài đặt phần mềm và chỉnh sửa Cron.
  • Một máy tính Windows có trình duyệt để xác thực Google Drive.
Cần chuẩn bị gì trước khi thiết lập Auto Backup?
Cần chuẩn bị gì trước khi thiết lập Auto Backup?

Hướng dẫn tự động backup n8n và OpenClaw lên Google Drive

Bước 1 – Kết nối Google Drive với từng VPS bằng Rclone

Rclone là công cụ giúp sao chép dữ liệu từ VPS lên các dịch vụ lưu trữ đám mây, bao gồm Google Drive. Trong mô hình hai VPS, cần cài và cấu hình Rclone riêng trên từng máy chủ.

1.1. Cài đặt Rclone trên VPS 1 và VPS 2

Trước tiên, sử dụng Xshell đăng nhập VPS 1 (n8n).

Cài đặt các công cụ cần thiết:

sudo apt update
sudo apt install -y curl nano tar cron

Cài công cụ giải nén unzip:

sudo apt update
sudo apt install -y unzip

Cài Rclone bằng script chính thức:

sudo -v
curl https://rclone.org/install.sh | sudo bash

Kiểm tra:

Cài đặt Rclone trên VPS 1 và VPS 2
Cài đặt Rclone trên VPS 1 và VPS 2
rclone version

Sau khi hoàn tất, đăng nhập VPS 2 (OpenClaw) và thực hiện lại các lệnh tương tự.

Như vậy, cả hai VPS đều đã có Rclone.

Cài đặt Rclone trên VPS 1 và VPS 2
Cài đặt Rclone trên VPS 1 và VPS 2

1.2. Chuẩn bị Google Drive và OAuth Client ID

Bạn chỉ cần chuẩn bị một tài khoản Google Drive cho cả hai VPS.

Trước tiên, đăng nhập Google Drive và tạo thư mục: AI-Backups

Tiếp theo, tạo thông tin xác thực Google Drive API:

Tạo Project trên Google Cloud

  1. Truy cập Google Cloud Console và đăng nhập tài khoản Google.
  2. Nhấn vào mục chọn Project ở thanh công cụ phía trên.
  3. Chọn New Project (Dự án mới).
  4. Đặt tên, ví dụ VPS-Auto-Backup, sau đó nhấn Create.
  5. Chọn Project vừa tạo để tiếp tục cấu hình.
Tạo Project trên Google Cloud
Tạo Project trên Google Cloud

Kích hoạt Google Drive API

  1. Trong Google Cloud Console, truy cập APIs & Services → Library.
  2. Nhập Google Drive API vào ô tìm kiếm.
  3. Chọn Google Drive API trong kết quả.
  4. Nhấn Enable (Bật) để kích hoạt dịch vụ.
Kích hoạt Google Drive API
Kích hoạt Google Drive API

Cấu hình màn hình OAuth

  1. Truy cập Google Auth Platform → Branding.
  2. Nếu chưa thiết lập, nhấn Get Started.
  3. Nhập các thông tin:
    • App name: Rclone VPS Backup
    • User support email: Chọn email Google của bạn.
    • Audience: Chọn External nếu sử dụng tài khoản Google cá nhân.
    • Contact information: Nhập email liên hệ.
  4. Đồng ý với chính sách của Google và nhấn Create.
Hướng dẫn tự động backup n8n và OpenClaw lên Google Drive 1
Cấu hình màn hình OAuth
Cấu hình màn hình OAuth
Cấu hình màn hình OAuth

Tiếp theo, vào Google Auth Platform → Data Access, chọn Add or Remove Scopes, kéo xuống và thêm quyền:

https://www.googleapis.com/auth/drive.file

Quyền này cho phép Rclone truy cập và quản lý các tệp được tạo thông qua ứng dụng, phù hợp với nhu cầu backup mà không cần cấp quyền truy cập toàn bộ Google Drive.

Cấu hình màn hình OAuth
Cấu hình màn hình OAuth

Thêm tài khoản thử nghiệm

  1. Truy cập Google Auth Platform → Audience.
  2. Tìm mục Test users và nhấn Add users.
  3. Nhập địa chỉ Gmail sẽ sử dụng để lưu các bản backup.
  4. Nhấn Save để hoàn tất.
Thêm tài khoản thử nghiệm
Thêm tài khoản thử nghiệm

Lưu ý: Nếu ứng dụng External vẫn ở trạng thái Testing, refresh token cấp quyền Google Drive thường hết hạn sau 7 ngày. Để sử dụng backup lâu dài, bạn nên xem xét chuyển trạng thái sang In production bằng tùy chọn Publish App và hoàn thành những yêu cầu xác minh mà Google áp dụng. Với ứng dụng cá nhân chưa xác minh, Google có thể hiển thị cảnh báo khi đăng nhập.

Tạo OAuth Client ID

  1. Truy cập Google Auth Platform → Clients.
  2. Nhấn Create Client.
  3. Tại Application type, chọn Desktop app.
  4. Đặt tên, ví dụ Rclone Backup Client.
  5. Nhấn Create.

Sau khi tạo thành công, Google sẽ cung cấp hai thông tin quan trọng:

  • Client ID: Mã định danh ứng dụng.
  • Client Secret: Khóa bí mật dùng để xác thực ứng dụng.
Hướng dẫn tự động backup n8n và OpenClaw lên Google Drive 2
Tạo OAuth Client ID

Sao chép và lưu giữ an toàn hai thông tin này để sử dụng khi chạy lệnh rclone config trên từng VPS.

Tạo OAuth Client ID
Tạo OAuth Client ID

Kết quả: Bạn đã chuẩn bị xong thông tin OAuth để kết nối Rclone với Google Drive. Ở bước tiếp theo, sử dụng cùng Client ID và Client Secret để cấu hình riêng cho VPS n8n và VPS OpenClaw. Mỗi VPS cần hoàn tất quá trình xác thực Google Drive độc lập.

1.3. Kết nối Google Drive trên VPS 1 (n8n)

Với hướng dẫn này, script backup n8n được chạy bằng tài khoản root để có quyền truy cập Docker volume.

Trên VPS 1, nhập:

sudo -i

Sau đó:

rclone config

Lần lượt thực hiện:

MụcThao tác
New remoteNhập n
NameNhập gdrive
StorageChọn drive
Client IDDán Client ID đã tạo
Client SecretDán Client Secret
ScopeChọn drive.file
Advanced configChọn n
Use web browserChọn n
Kết nối Google Drive trên VPS 1 (n8n)
Kết nối Google Drive trên VPS 1 (n8n)
Kết nối Google Drive trên VPS 1 (n8n)
Kết nối Google Drive trên VPS 1 (n8n)
Kết nối Google Drive trên VPS 1 (n8n)
Kết nối Google Drive trên VPS 1 (n8n)
Kết nối Google Drive trên VPS 1 (n8n)
Kết nối Google Drive trên VPS 1 (n8n)

Khi VPS yêu cầu xác thực, Rclone sẽ hiển thị lệnh rclone authorize cần chạy trên máy tính có trình duyệt.

Kết nối Google Drive trên VPS 1 (n8n)
Kết nối Google Drive trên VPS 1 (n8n)

1.4. Xác thực kết nối Google Drive cho VPS bằng Rclone trên Windows

Trên máy tính Windows:

Truy cập trang tải Rclone, tải phiên bản Windows và giải nén.

Mở thư mục chứa tệp rclone.exe -> nhấn chuột phải vào tệp -> chọn Mở với Terminal.

Quay lại Xshell, sao chép toàn bộ lệnh rclone authorize mà VPS cung cấp.

Xác thực kết nối Google Drive cho VPS bằng Rclone trên Windows
Xác thực kết nối Google Drive cho VPS bằng Rclone trên Windows

Dán lệnh vào PowerShell, thêm .\ trước rclone (thành .\rclone.exe authorize...), rồi nhấn Enter.

Trình duyệt sẽ mở trang đăng nhập Google. Chọn tài khoản Google Drive, cấp quyền và chờ thông báo xác thực thành công.

Xác thực kết nối Google Drive cho VPS bằng Rclone trên Windows
Xác thực kết nối Google Drive cho VPS bằng Rclone trên Windows

Quay lại PowerShell, sao chép toàn bộ chuỗi ký tự nằm giữa Paste the following into your remote machine và End paste.

Xác thực kết nối Google Drive cho VPS bằng Rclone trên Windows
Xác thực kết nối Google Drive cho VPS bằng Rclone trên Windows

Trở lại Xshell, dán chuỗi vào dòng config_token> rồi nhấn Enter.

Xác thực kết nối Google Drive cho VPS bằng Rclone trên Windows
Xác thực kết nối Google Drive cho VPS bằng Rclone trên Windows

Hoàn tất cấu hình trên VPS:

  • Khi được hỏi Configure this as a Shared Drive?, chọn n nếu sử dụng Google Drive cá nhân.
  • Tại Keep this “gdrive” remote?, chọn y để lưu.
  • Nhập q để thoát menu cấu hình Rclone.
Hoàn tất cấu hình trên VPS
Hoàn tất cấu hình trên VPS

Kiểm tra kết nối:

rclone lsd gdrive:
Kiểm tra kết nối:
Kiểm tra kết nối

Nếu không xuất hiện lỗi xác thực, kết nối đã hoạt động. Danh sách thư mục có thể trống khi sử dụng quyền drive.file.

Lưu ý: Không chia sẻ Client Secret hoặc chuỗi xác thực được PowerShell trả về vì đây là thông tin nhạy cảm.

1.4. Kết nối Google Drive trên VPS 2 (OpenClaw)

Trên VPS 2, cần thực hiện Rclone bằng đúng tài khoản Linux đang vận hành OpenClaw.

Kiểm tra tài khoản hiện tại:

whoami

Kiểm tra OpenClaw:

command -v openclaw

Nếu lệnh thứ hai không trả về đường dẫn, cần đăng nhập tài khoản thực sự đã cài OpenClaw hoặc xác định đường dẫn thực thi trước khi tiếp tục.

Sau đó nhập:

rclone config

Thực hiện cấu hình giống VPS 1:

  • Remote name: gdrive
  • Storage: drive
  • Client ID và Client Secret: Dùng lại thông tin đã tạo.
  • Google Account: Đăng nhập cùng tài khoản Google Drive.
  • Xác thực: Thực hiện trên Windows nếu VPS không có trình duyệt.
Kết nối Google Drive trên VPS 2 (OpenClaw)
Kết nối Google Drive trên VPS 2 (OpenClaw)

Cuối cùng, kiểm tra:

rclone lsd gdrive:

Kết quả: Cả hai VPS đều có một remote tên gdrive, nhưng cấu hình được lưu độc lập trên từng máy.

1.5. Mã hóa và phân chia thư mục backup

Để tránh lưu API Key và thông tin xác thực ở dạng dễ đọc trên Google Drive, nên tạo thêm remote mã hóa crypt.

Trên VPS 1, chạy:

rclone config

Chọn tạo remote mới với thông tin:

MụcGiá trị
Namesecure
Storagecrypt
Remote to encryptgdrive:AI-Backups/n8n
Filename encryptionstandard
Directory encryptiontrue
PasswordTạo mật khẩu mạnh
Password2Tạo salt riêng
Mã hóa và phân chia thư mục backup
Mã hóa và phân chia thư mục backup

Lưu cấu hình rồi tiếp tục trên VPS 2, tạo remote secure tương tự, nhưng thay đường dẫn:

gdrive:AI-Backups/openclaw

Mỗi VPS có thể sử dụng khóa mã hóa riêng vì hai thư mục lưu trữ hoàn toàn độc lập. Cần giữ lại khóa, salt và cấu hình Rclone của từng máy để có thể giải mã khi khôi phục.

Mã hóa và phân chia thư mục backup
Mã hóa và phân chia thư mục backup

Kiểm tra trên từng VPS:

rclone mkdir secure:
rclone lsf secure:

Nếu không có lỗi truy cập, remote mã hóa đã sẵn sàng. Rclone sẽ tự mã hóa dữ liệu khi tải lên và giải mã khi tải về.

Mã hóa và phân chia thư mục backup
Mã hóa và phân chia thư mục backup

Từ đây, các bước tiếp theo được tách hoàn toàn theo từng VPS.

Bước 2 – Tự động backup n8n trên VPS thứ nhất

Phần này chỉ thực hiện trên VPS 1 – máy chủ đang chạy n8n.

Chúng ta sẽ tạo một script để dừng n8n trong thời gian ngắn, sao lưu dữ liệu SQLite và tải bản backup lên Google Drive. Sau đó, Cron sẽ tự chạy script mỗi ngày.

2.1. Kiểm tra container và dữ liệu n8n

Đăng nhập VPS 1 bằng Xshell.

Kiểm tra container:

sudo docker ps

Xác định tên container trong cột NAMES. Ví dụ:

n8n

Tiếp tục kiểm tra loại cơ sở dữ liệu (giả sử tên container là n8n-n8n-1):

sudo docker inspect n8n-n8n-1 --format '{{range .Config.Env}}{{println .}}{{end}}' | grep '^DB_TYPE='
  • Nếu hiển thị DB_TYPE=sqlite, có thể thực hiện hướng dẫn bên dưới.
  • Nếu không có kết quả và n8n sử dụng cấu hình mặc định, cơ sở dữ liệu thường là SQLite.
  • Nếu hiển thị DB_TYPE=postgresdb, cần sao lưu PostgreSQL bằng công cụ riêng.

Kiểm tra vị trí thư mục dữ liệu:

sudo docker inspect n8n-n8n-1 --format '{{range .Mounts}}{{println .Destination "->" .Source}}{{end}}'

Lệnh này sẽ trả về vị trí thư mục .n8n được mount trên VPS.

Tự động backup n8n trên VPS thứ nhất
Tự động backup n8n trên VPS thứ nhất

Nếu không có kết quả, cần xác định lại cách n8n lưu dữ liệu. Không tiếp tục với đường dẫn chưa xác minh.

2.2. Tạo script backup n8n

Tạo script trên VPS 1 (giả sử n8n đang sử dụng postgresdb):

nano /usr/local/bin/backup-n8n.sh

Dán toàn bộ nội dung sau:


#!/usr/bin/env bash
set -Eeuo pipefail
umask 077

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# Cau hinh VPS n8n
N8N="n8n-n8n-1"
WORKER="n8n-n8n-worker-1"
POSTGRES="n8n-postgres-1"

DATA_DIR="/var/lib/docker/volumes/n8n_n8n_data/_data"
BACKUP_DIR="/var/backups/n8n"
DATE="$(date +%Y%m%d-%H%M%S)"

mkdir -p "$BACKUP_DIR"
chmod 700 "$BACKUP_DIR"

BACKUP_FILE="$BACKUP_DIR/n8n-$DATE.tar.gz"
TMP="$(mktemp -d "$BACKUP_DIR/.tmp-XXXXXXXX")"

STOP_PHASE=0

# Khoi dong lai n8n neu xay ra loi
cleanup() {
  local status=$?
  trap - EXIT

  if [[ "$STOP_PHASE" == 1 ]]; then
    for c in "$N8N" "$WORKER"; do
      if [[ "$(docker inspect -f '{{.State.Running}}' "$c" 2>/dev/null || true)" == "false" ]]; then
        docker start "$c" >/dev/null || status=1
      fi
    done
  fi

  rm -rf -- "$TMP"
  exit "$status"
}
trap cleanup EXIT

echo "Kiem tra he thong..."

# Kiem tra cac container
for c in "$N8N" "$WORKER" "$POSTGRES"; do
  test "$(docker inspect -f '{{.State.Running}}' "$c")" = "true"
done

test -d "$DATA_DIR"
rclone lsf secure: >/dev/null

# Xac dinh database n8n
DB_NAME="$(docker inspect "$N8N" \
  --format '{{range .Config.Env}}{{println .}}{{end}}' \
  | sed -n 's/^DB_POSTGRESDB_DATABASE=//p' | head -n 1)"

if [[ -z "$DB_NAME" ]]; then
  echo "Khong xac dinh duoc database n8n" >&2
  exit 1
fi

# Kiem tra PostgreSQL truoc khi dung n8n
docker exec "$POSTGRES" sh -c \
  'psql -U "${POSTGRES_USER:-postgres}" -d "$1" -Atqc "SELECT 1"' \
  sh "$DB_NAME" | grep -qx 1

echo "Tam dung n8n va Worker..."
STOP_PHASE=1

docker stop --time 180 "$WORKER" >/dev/null
docker stop --time 180 "$N8N" >/dev/null

echo "Backup PostgreSQL..."

docker exec "$POSTGRES" sh -c \
  'exec pg_dump -U "${POSTGRES_USER:-postgres}" -d "$1" -Fc' \
  sh "$DB_NAME" > "$TMP/postgres.dump"

# Kiem tra PostgreSQL dump
docker exec -i "$POSTGRES" pg_restore -l \
  < "$TMP/postgres.dump" >/dev/null

echo "Backup thu muc n8n..."

tar -C "$DATA_DIR" -czf "$TMP/n8n-data.tar.gz" .

# Backup Compose va .env neu tim thay
COMPOSE_DIR="$(docker inspect "$N8N" \
  --format '{{index .Config.Labels "com.docker.compose.project.working_dir"}}')"

if [[ -d "$COMPOSE_DIR" ]]; then
  mkdir -p "$TMP/deployment"

  for f in compose.yaml compose.yml docker-compose.yml docker-compose.yaml .env; do
    if [[ -f "$COMPOSE_DIR/$f" ]]; then
      cp "$COMPOSE_DIR/$f" "$TMP/deployment/"
    fi
  done
fi

printf 'Database: %s\nCreated: %s\n' \
  "$DB_NAME" "$DATE" > "$TMP/backup-info.txt"

echo "Khoi dong lai n8n va Worker..."

docker start "$N8N" >/dev/null
docker start "$WORKER" >/dev/null
STOP_PHASE=0

echo "Nen ban backup..."

tar -C "$TMP" -czf "$BACKUP_FILE" .

# Kiem tra file nen
tar -tzf "$BACKUP_FILE" >/dev/null

echo "Tai len Google Drive..."

rclone copyto "$BACKUP_FILE" \
  "secure:$(basename "$BACKUP_FILE")"

echo "Don backup cuc bo cu..."

find "$BACKUP_DIR" -maxdepth 1 -type f \
  -name 'n8n-*.tar.gz' -mtime +7 -delete

echo "BACKUP N8N THANH CONG!"

Giải thích: Script này sẽ thực hiện:

  1. Kiểm tra n8n, Worker, PostgreSQL và kết nối Rclone.
  2. Tạm dừng n8n cùng Worker.
  3. Sao lưu cơ sở dữ liệu PostgreSQL bằng pg_dump.
  4. Sao lưu thư mục dữ liệu .n8n và các tệp Compose, .env thông dụng nếu tìm thấy.
  5. Khởi động lại n8n và Worker.
  6. Nén, kiểm tra và tải bản backup lên Google Drive đã mã hóa.
  7. Xóa các bản backup cục bộ cũ hơn 7 ngày.
Tạo script backup n8n
Tạo script backup n8n

Bản backup được giữ lại trên VPS trong khoảng thời gian ngắn để thuận tiện kiểm tra. Các tệp cũ hơn 7 ngày sẽ được dọn sau một lần upload thành công.

Lưu ý quan trọng:

  • Nếu container có tên khác n8n, hãy sửa giá trị CONTAINER trong script.
  • Script không hỗ trợ PostgreSQL hoặc nhiều container n8n cùng ghi vào một cơ sở dữ liệu.
  • Cần sao lưu riêng tệp Docker Compose, .env, thư mục custom nodes hoặc dữ liệu lưu bên ngoài .n8n nếu có.
  • Nếu sử dụng N8N_ENCRYPTION_KEY trong biến môi trường, phải lưu giữ giá trị này an toàn để khôi phục credentials.

Nếu phát sinh lỗi sau khi dừng ứng dụng, script sẽ cố gắng khởi động lại n8n và Worker.

Đặc biệt: Script chỉ sao lưu cơ sở dữ liệu n8n, không bao gồm dữ liệu độc lập của NocoDB hoặc Redis. Các thư mục lưu trữ bên ngoài .n8n, tệp Compose hoặc .env nằm ở vị trí khác cũng cần được kiểm tra và sao lưu riêng.

2.3. Chạy thử script backup n8n

Lưu script bằng Ctrl + O, nhấn Enter, sau đó Ctrl + X.

Cấp quyền thực thi:

sudo chmod 700 /usr/local/bin/backup-n8n.sh

Chạy thử:

sudo /usr/local/bin/backup-n8n.sh

Nếu thành công, cuối màn hình sẽ có:

BACKUP N8N THANH CONG!
 Chạy thử script backup n8n
Chạy thử script backup n8n

Kiểm tra các bản backup trên Google Drive:

sudo rclone lsf secure:

Nếu có tệp tên tương tự “n8n-20261016-020000.tar.gz” thì bản backup đã được tải lên.

 Chạy thử script backup n8n
Chạy thử script backup n8n

Tên tệp trên chỉ là ví dụ minh họa, không phải kết quả kiểm tra thực tế.

2.4. Thiết lập backup n8n mỗi ngày

Bật Cron:

sudo systemctl enable --now cron

Mở lịch Cron của root:

sudo crontab -e

Thêm:

0 2 * * * /bin/bash /usr/local/bin/backup-n8n.sh >> /var/log/n8n-backup.log 2>&1

Lưu và thoát. Dòng lệnh này giúp VPS 1 tự động backup n8n vào 02:00 mỗi ngày, theo múi giờ của VPS.

Thiết lập backup n8n mỗi ngày
Thiết lập backup n8n mỗi ngày

Bạn có thể kiểm tra lịch đã lưu:

sudo crontab -l

Như vậy, phần thiết lập trên VPS 1 đã hoàn tất.

Bước 3 – Tự động backup OpenClaw trên VPS thứ hai

Phần này chỉ thực hiện trên VPS 2 – máy chủ đang chạy OpenClaw.

Khác với n8n, OpenClaw có sẵn công cụ sao lưu thông qua CLI. Vì vậy, chúng ta sẽ sử dụng chức năng chính thức để tạo bản backup trước khi chuyển lên Google Drive.

3.1. Kiểm tra tính năng backup của OpenClaw

Đăng nhập VPS 2 bằng Xshell, sử dụng đúng tài khoản Linux quản lý OpenClaw.

Kiểm tra phiên bản:

openclaw --version

Tiếp tục kiểm tra lệnh backup:

openclaw backup --help

Nếu phiên bản đang sử dụng có hỗ trợ, CLI sẽ hiển thị các lệnh quản lý backup như create, verify và restore.

Kiểm tra tính năng backup của OpenClaw
Kiểm tra tính năng backup của OpenClaw

Theo tài liệu OpenClaw, chức năng backup create hỗ trợ sao lưu trạng thái ứng dụng, cấu hình, credentials, agent directories và workspace theo cấu hình.

3.2. Tạo script backup OpenClaw

Mở Nano:

nano ~/backup-openclaw.sh

Dán nội dung:


#!/usr/bin/env bash
set -Eeuo pipefail
umask 077

export PATH="/usr/local/bin:/usr/bin:/bin:$HOME/.local/bin:$HOME/.npm-global/bin:$PATH"

# Ho tro OpenClaw cai qua NVM
if [[ -s "$HOME/.nvm/nvm.sh" ]]; then
  set +u
  source "$HOME/.nvm/nvm.sh"
  set -u
fi

BACKUP_DIR="/var/backups/openclaw"

mkdir -p "$BACKUP_DIR"
chmod 700 "$BACKUP_DIR"

echo "Kiem tra OpenClaw va Google Drive..."

command -v openclaw >/dev/null
command -v rclone >/dev/null
rclone lsf secure: >/dev/null

# Tao thu muc tam
TMP_DIR="$(mktemp -d "$BACKUP_DIR/.tmp-XXXXXXXX")"
trap 'rm -rf -- "$TMP_DIR"' EXIT

echo "Dang tao backup OpenClaw..."

openclaw backup create \
  --output "$TMP_DIR" \
  --verify

# Tim file backup moi tao
mapfile -d '' -t FILES < <(
  find "$TMP_DIR" -maxdepth 1 \
    -type f -name '*.tar.gz' -print0
)

if [[ "${#FILES[@]}" -ne 1 ]]; then
  echo "Khong tim thay file backup hop le" >&2
  exit 1
fi

FILE="${FILES[0]}"
NAME="$(basename "$FILE")"

# Luu ban sao cuc bo
mv -- "$FILE" "$BACKUP_DIR/$NAME"

echo "Dang tai backup len Google Drive..."

rclone copyto \
  "$BACKUP_DIR/$NAME" \
  "secure:$NAME"

echo "Don cac ban backup cuc bo cu..."

find "$BACKUP_DIR" -maxdepth 1 -type f \
  -name '*.tar.gz' -mtime +7 -delete

echo "BACKUP OPENCLAW THANH CONG!"

Script thực hiện các thao tác:

  1. Kiểm tra công cụ OpenClaw và kết nối Google Drive.
  2. Tạo bản backup gồm cấu hình, dữ liệu Agent, thông tin xác thực, sessions và workspace theo cấu hình.
  3. Kiểm tra bản backup bằng --verify.
  4. Lưu một bản sao trên VPS tại /var/backups/openclaw/.
  5. Tải bản backup lên Google Drive thông qua remote secure đã mã hóa.
  6. Dọn các bản backup cục bộ cũ hơn 7 ngày sau khi tải lên thành công.

Script không cần truy cập VPS n8n. Hai VPS hoạt động hoàn toàn độc lập.

3.3. Chạy thử backup OpenClaw

Lưu script, sau đó cấp quyền:

chmod 700 ~/backup-openclaw.sh

Chạy thử:

bash ~/backup-openclaw.sh
Chạy thử backup OpenClaw
Chạy thử backup OpenClaw

Nếu thành công, kiểm tra Google Drive:

rclone lsf secure:

Kết quả sẽ hiển thị tên tệp backup OpenClaw đã tạo.

Chạy thử backup OpenClaw
Chạy thử backup OpenClaw

3.4. Thiết lập tự động backup OpenClaw mỗi ngày

Mở Cron bằng tài khoản Linux đang vận hành OpenClaw:

crontab -e

Thêm:

0 3 * * * /bin/bash "HOME/backup-openclaw.sh">>"HOME/openclaw-backup.log" 2>&1

Lưu và thoát. Lịch trên sẽ tự động chạy script vào 03:00 mỗi ngày, theo múi giờ VPS 2.

Thiết lập tự động backup OpenClaw mỗi ngày
Thiết lập tự động backup OpenClaw mỗi ngày

Nếu Cron báo không tìm thấy lệnh openclaw, hãy xác định đường dẫn chính xác bằng:

command -v openclaw

Sau đó bổ sung đường dẫn chứa lệnh vào biến PATH trong script. Điều này thường cần thiết nếu OpenClaw được cài thông qua công cụ quản lý phiên bản Node.js như NVM.

Kiểm tra lịch:

crontab -l

Đến đây, cả hai VPS đã có lịch sao lưu độc lập.

Bước 4 – Kiểm tra bản backup trên Google Drive

Sau khi chạy thử thành công trên cả hai VPS, mở Google Drive và tìm thư mục AI-Backups.

Lưu ý với quyền drive.file: Quyền này giới hạn khả năng truy cập các tệp do ứng dụng tạo. Vì vậy, nếu thư mục AI-Backups được tạo thủ công trên giao diện Google Drive, Rclone có thể không nhìn thấy thư mục đó. Cách đơn giản là để Rclone tự tạo thư mục lưu trữ, thay vì dùng thư mục tạo sẵn. Khi cần thao tác với thư mục được tạo bằng ứng dụng khác, phải sử dụng phương thức cấp quyền phù hợp.

Kiểm tra bản backup trên Google Drive
Kiểm tra bản backup trên Google Drive

Ngoài ra, đối với các tệp đã mã hóa bằng Rclone Crypt, tên tệp và nội dung trên giao diện Google Drive sẽ không hiển thị ở dạng thông thường.

Kiểm tra bản backup trên Google Drive
Kiểm tra bản backup trên Google Drive
Kiểm tra bản backup trên Google Drive
Kiểm tra bản backup trên Google Drive

Để xem tên backup gốc, sử dụng Rclone tại VPS tương ứng:

Trên VPS 1:

sudo rclone lsf secure:

Trên VPS 2:

rclone lsf secure:

Bạn cũng có thể tải thử một bản backup về VPS để kiểm tra.

Ví dụ trên VPS 1:

sudo rclone copyto \

  "secure:TEN_FILE_BACKUP.tar.gz" \

  "/tmp/n8n-check.tar.gz"

Sau đó kiểm tra:

sudo tar -tzf /tmp/n8n-check.tar.gz | head

Nếu tệp có thể giải nén và hiển thị danh sách dữ liệu, đây là một bước xác minh ban đầu. Tuy nhiên, kiểm tra tệp nén thành công chưa bảo đảm ứng dụng có thể khôi phục đầy đủ.

Cách khôi phục dữ liệu khi VPS gặp sự cố

Khi một VPS gặp sự cố, bạn chỉ cần khôi phục dữ liệu của ứng dụng tương ứng. VPS còn lại có thể tiếp tục hoạt động bình thường.

Khôi phục n8n trên VPS 1

Với n8n SQLite, quy trình cơ bản gồm:

  1. Chuẩn bị VPS mới và cài lại Docker.
  2. Cấu hình Rclone bằng tài khoản Google Drive cùng khóa giải mã của VPS 1.
  3. Tải tệp backup n8n về VPS.
  4. Chuẩn bị thư mục hoặc Docker volume .n8n tương ứng.
  5. Dừng n8n và khôi phục dữ liệu vào vị trí lưu trữ đã chuẩn bị.
  6. Khôi phục các biến môi trường, khóa mã hóa và cấu hình triển khai liên quan.
  7. Khởi động n8n và kiểm tra workflow, credentials cùng dữ liệu thực thi.

Không nên giải nén bản backup trực tiếp lên thư mục dữ liệu đang hoạt động nếu chưa có bản sao an toàn của dữ liệu hiện tại.

Cách khôi phục dữ liệu khi VPS gặp sự cố
Cách khôi phục dữ liệu khi VPS gặp sự cố

Khôi phục OpenClaw trên VPS 2

Trước tiên, cấu hình lại Rclone và tải tệp backup OpenClaw:

rclone copyto \

  "secure:TEN_FILE_BACKUP.tar.gz" \

  "$HOME/openclaw-restore.tar.gz"

Sau đó kiểm tra:

openclaw backup verify \

  "$HOME/openclaw-restore.tar.gz"

Khôi phục dữ liệu vào một thư mục tạm:

openclaw backup restore \

  "$HOME/openclaw-restore.tar.gz" \

  --target "$HOME/openclaw-restore-test"

Tài liệu OpenClaw quy định thao tác restore trước tiên giải nén dữ liệu vào thư mục đích; việc đưa dữ liệu trở lại môi trường vận hành cần được thực hiện riêng sau khi dừng dịch vụ và kiểm tra cấu hình.

OpenClaw

Sau khi hoàn tất quá trình khôi phục, chạy:

openclaw doctor

Đồng thời kiểm tra kết nối đến các kênh nhắn tin, cấu hình model AI và các công cụ Agent đang sử dụng.

Những lưu ý quan trọng khi backup nhiều VPS

Khi thiết lập Auto Backup cho hai VPS lên cùng Google Drive, cần chú ý:

  • Không dùng chung thư mục chứa backup của hai ứng dụng: Phân tách dữ liệu giúp dễ xác định bản backup khi cần khôi phục.
  • Giữ cấu hình mã hóa riêng: Nếu sử dụng hai remote Crypt độc lập, cần lưu lại thông tin giải mã tương ứng.
  • Không chỉ backup trên VPS: Nên duy trì ít nhất một bản sao bên ngoài máy chủ.
  • Kiểm tra dung lượng Google Drive: Cả hai VPS cùng sử dụng dung lượng của tài khoản đích.
  • Định kỳ thử khôi phục: Tệp backup có thể tải về thành công nhưng vẫn thiếu cấu hình hoặc dữ liệu cần thiết.
  • Kiểm tra log Cron: Phát hiện sớm trường hợp backup thất bại do lỗi xác thực Google Drive, hết dung lượng hoặc lệnh không được thực thi.
  • Bảo vệ quyền truy cập Google: Tài khoản Google Drive chứa backup cần bật xác thực hai bước.
Những lưu ý quan trọng khi backup nhiều VPS
Những lưu ý quan trọng khi backup nhiều VPS

Ngoài ra, Google Drive không thay thế hoàn toàn dịch vụ backup chuyên dụng cho các hệ thống có yêu cầu phục hồi cao. Nếu n8n và OpenClaw đang vận hành các tác vụ quan trọng, nên kết hợp thêm snapshot VPS hoặc phương án sao lưu dự phòng khác.

Kết luận

Tự động backup n8n và OpenClaw từ hai VPS khác nhau lên cùng Google Drive hoàn toàn có thể thực hiện bằng Rclone và Cron. Mỗi VPS tự tạo bản sao lưu theo lịch riêng, sau đó tải dữ liệu lên thư mục tương ứng trên Google Drive.

Cách triển khai này giúp quản lý tập trung các bản backup mà vẫn giữ hai hệ thống vận hành độc lập. Để bảo đảm khả năng phục hồi khi máy chủ gặp sự cố, bạn nên mã hóa dữ liệu, thường xuyên kiểm tra kết quả sao lưu và định kỳ thử khôi phục trong môi trường riêng.

Những câu hỏi thường gặp

Hai VPS khác IP có thể backup lên cùng một Google Drive không?

Có. Rclone sử dụng kết nối Internet để tải dữ liệu lên Google Drive nên hai VPS không cần có cùng địa chỉ IP, cùng nhà cung cấp hoặc cùng mạng nội bộ. Mỗi VPS chỉ cần có thông tin xác thực và quyền truy cập hợp lệ.

Có cần tạo hai tài khoản Google Drive riêng không?

Không bắt buộc. Bạn có thể sử dụng một tài khoản Google Drive và phân chia bản sao lưu thành hai thư mục. Tuy nhiên, sử dụng tài khoản hoặc vùng lưu trữ riêng sẽ giúp phân tách quyền truy cập và giảm ảnh hưởng nếu một thông tin xác thực bị lộ.

Có cần cài n8n trên VPS OpenClaw để chạy workflow backup không?

Không. VPS OpenClaw có thể sử dụng lệnh backup chính thức kết hợp Rclone và Cron. Quy trình này không yêu cầu n8n và cũng không phụ thuộc vào VPS đang vận hành n8n.

Nếu VPS n8n bị mất dữ liệu, backup OpenClaw có bị ảnh hưởng không?

Thông thường là không, vì OpenClaw sử dụng VPS riêng và các bản backup được lưu độc lập. Tuy nhiên, nếu tài khoản Google Drive chung bị khóa, mất quyền truy cập hoặc bị xóa dữ liệu, cả hai hệ thống sao lưu đều có thể bị ảnh hưởng.

Có cần trả phí cho Rclone không?

Không. Rclone là công cụ mã nguồn mở, có thể sử dụng miễn phí. Chi phí có thể phát sinh từ dung lượng Google Drive, tài nguyên VPS và những dịch vụ lưu trữ bổ sung nếu cần.

Đông Tùng

Senior Technology Writer

Là cử nhân Quản trị kinh doanh của Trường Đại học Tài chính - Marketing, Tùng bắt đầu làm việc tại Tino Group từ năm 2021 ở vị trí Content Marketing để thỏa mãn niềm đam mê viết lách của bản thân. Sở hữu khả năng sáng tạo đặc biệt, anh cùng đội ngũ của mình đã tạo nên những chiến dịch quảng cáo độc đáo cùng vô số bài viết hữu ích về nhiều chủ đề khác nhau. Sự tỉ mỉ, kiên trì và tinh thần sáng tạo của Tùng đã góp phần lớn vào thành công của Tino Group trong lĩnh vực marketing trực tuyến.

Xem thêm bài viết

Bài viết liên quan

Xem nhiều