KB-639C

S174-IMP-05 — Restore Guide for Code Backup on GDrive

6 min read Revision 1
reports174restorebackupgdriverunbookvps

S174-IMP-05 — Restore Guide for Code Backup on GDrive

Date: 2026-04-08 Scope: restore code quickly from Google Drive backup archives created by code-backup-to-gdrive.sh.

Rules Loaded

  • .claude/skills/incomex-rules.md
  • search_knowledge("operating rules SSOT")
  • search_knowledge("hiến pháp v4.0 constitution")

Mục tiêu

Khôi phục nhanh repo code từ GDrive về VPS sao cho:

  • đúng path production
  • còn .git
  • kiểm tra được HEAD
  • có thể tiếp tục deploy / rebuild
  • nếu cần có thể sync ngược lên GitHub sau khi hệ thống ổn định

1. Repo + Folder Mapping

web-test

  • Repo path: /opt/incomex/docker/nuxt-repo
  • GDrive folder id: 1K1atlFO-bkO7KoukEKPDFbZq7wvQd1Mb
  • File name pattern: web-test_YYYYMMDD-HHMM_ICT.tar.gz

agent-data-test

  • Repo path: /opt/incomex/docker/agent-data-repo
  • GDrive folder id: 1__qHH5ndV0FqC73nJu5_kUN5sd46M-AN
  • File name pattern: agent-data-test_YYYYMMDD-HHMM_ICT.tar.gz

2. Tìm Bản Backup Mới Nhất

web-test

rclone lsl gdrive-backup: --drive-root-folder-id 1K1atlFO-bkO7KoukEKPDFbZq7wvQd1Mb | sort

agent-data-test

rclone lsl gdrive-backup: --drive-root-folder-id 1__qHH5ndV0FqC73nJu5_kUN5sd46M-AN | sort

Chọn file mới nhất theo timestamp trong tên file hoặc timestamp remote.

3. Restore web-test

3.1 Tải archive về máy VPS

Ví dụ:

mkdir -p /opt/incomex/restore
rclone copyto \
  gdrive-backup:web-test_YYYYMMDD-HHMM_ICT.tar.gz \
  /opt/incomex/restore/web-test_YYYYMMDD-HHMM_ICT.tar.gz \
  --drive-root-folder-id 1K1atlFO-bkO7KoukEKPDFbZq7wvQd1Mb

3.2 Giải nén ra thư mục tạm

mkdir -p /opt/incomex/restore/web-test-extract
tar -C /opt/incomex/restore/web-test-extract -xzf /opt/incomex/restore/web-test_YYYYMMDD-HHMM_ICT.tar.gz

3.3 Kiểm tra archive trước khi thay path production

ls -la /opt/incomex/restore/web-test-extract/web-test/.git
cat /opt/incomex/restore/web-test-extract/web-test/BACKUP-MANIFEST.txt
git -C /opt/incomex/restore/web-test-extract/web-test rev-parse HEAD
git -C /opt/incomex/restore/web-test-extract/web-test status --short --branch

3.4 Đưa về path production

Chỉ làm khi đã xác nhận path production cũ cần thay thế.

mv /opt/incomex/docker/nuxt-repo /opt/incomex/docker/nuxt-repo.bak.$(date +%Y%m%d-%H%M%S)
mv /opt/incomex/restore/web-test-extract/web-test /opt/incomex/docker/nuxt-repo

3.5 Verify sau restore

git -C /opt/incomex/docker/nuxt-repo rev-parse HEAD
git -C /opt/incomex/docker/nuxt-repo status --short --branch
test -f /opt/incomex/docker/nuxt-repo/.git/HEAD && echo ok

4. Restore agent-data-test

4.1 Tải archive về máy VPS

mkdir -p /opt/incomex/restore
rclone copyto \
  gdrive-backup:agent-data-test_YYYYMMDD-HHMM_ICT.tar.gz \
  /opt/incomex/restore/agent-data-test_YYYYMMDD-HHMM_ICT.tar.gz \
  --drive-root-folder-id 1__qHH5ndV0FqC73nJu5_kUN5sd46M-AN

4.2 Giải nén ra thư mục tạm

mkdir -p /opt/incomex/restore/agent-data-test-extract
tar -C /opt/incomex/restore/agent-data-test-extract -xzf /opt/incomex/restore/agent-data-test_YYYYMMDD-HHMM_ICT.tar.gz

4.3 Kiểm tra archive trước khi thay path production

ls -la /opt/incomex/restore/agent-data-test-extract/agent-data-test/.git
cat /opt/incomex/restore/agent-data-test-extract/agent-data-test/BACKUP-MANIFEST.txt
git -C /opt/incomex/restore/agent-data-test-extract/agent-data-test rev-parse HEAD
git -C /opt/incomex/restore/agent-data-test-extract/agent-data-test status --short --branch

4.4 Đưa về path production

mv /opt/incomex/docker/agent-data-repo /opt/incomex/docker/agent-data-repo.bak.$(date +%Y%m%d-%H%M%S)
mv /opt/incomex/restore/agent-data-test-extract/agent-data-test /opt/incomex/docker/agent-data-repo

4.5 Verify sau restore

git -C /opt/incomex/docker/agent-data-repo rev-parse HEAD
git -C /opt/incomex/docker/agent-data-repo status --short --branch
test -f /opt/incomex/docker/agent-data-repo/.git/HEAD && echo ok

5. Optional — Sync Ngược Lên GitHub Sau Khi Ổn Định

Kiểm tra remote hiện có

git -C /opt/incomex/docker/nuxt-repo remote -v
git -C /opt/incomex/docker/agent-data-repo remote -v

Push lại lên branch an toàn trước

git -C /opt/incomex/docker/nuxt-repo push origin HEAD:restore/web-test-YYYYMMDD-HHMM
git -C /opt/incomex/docker/agent-data-repo push origin HEAD:restore/agent-data-test-YYYYMMDD-HHMM

Sau khi review xong mới fast-forward hoặc merge vào branch chính

Quyết định cuối cùng tùy trạng thái GitHub ở thời điểm phục hồi.

6. Rollback Nhanh Nếu Restore Sai

web-test

rm -rf /opt/incomex/docker/nuxt-repo
mv /opt/incomex/docker/nuxt-repo.bak.TIMESTAMP /opt/incomex/docker/nuxt-repo

agent-data-test

rm -rf /opt/incomex/docker/agent-data-repo
mv /opt/incomex/docker/agent-data-repo.bak.TIMESTAMP /opt/incomex/docker/agent-data-repo

7. Verify Checklist

  • Có file archive đúng repo và timestamp.
  • Archive có BACKUP-MANIFEST.txt.
  • Archive có .git/HEAD.
  • git rev-parse HEAD chạy được sau restore.
  • git status --short --branch chạy được sau restore.
  • Repo về đúng path production.
  • Nếu cần push lại GH, ưu tiên push vào branch restore/* trước.