Backup Headless CentOS7 ke Google Drive Guna rclone

Setup Google Drive API Credentials

Sebelum install rclone, kita kena setup dulu Google Project kat Google API Console. Kalau ko dah ada client_id dan client_secret, skip terus ke bahagian rclone setup.

Satu benda aku nak clarify: setup ni untuk non-GSuite user. Kalau ko guna Google Workspace, flow dia sedikit berbeza.

Satu lagi requirement sebelum mulakan: ko perlukan satu Linux Desktop (Ubuntu, Raspberry Pi, atau macOS pun okay) yang ada browser. Ini sebab rclone perlu launch browser masa generate token nanti.

Buat Google Drive Client ID

  1. Log in ke Google API Console. Boleh guna mana-mana Google account.
  2. Pilih project sedia ada atau create project baru.
  3. Pergi ke ENABLE APIS AND SERVICES, search Drive, enable Google Drive API.
  4. Click Credentials kat left panel, lepas tu click Create credentials.
  5. Kalau belum setup OAuth Consent Screen, click CONFIGURE CONSENT SCREEN. Pilih External, then CREATE.
  6. Isi:
    • Application name: rclone pun okay
    • User Support Email: email sendiri
    • Developer Contact Email: email sendiri
  7. Tambah scopes yang diperlukan:
    • .../auth/docs
    • .../auth/drive
    • .../auth/drive.metadata.readonly (optional tapi recommended)
  8. Click Save and continue, lepas tu pergi bahagian Test users. Tambah email sendiri sebagai test user.
  9. Lepas save, balik ke Credentials kat left panel.
  10. Click Create Credentials lagi, pilih OAuth client ID.
  11. Pilih application type: Desktop app.
  12. Click Create. Copy client_id dan client_secret yang keluar.

Install rclone

Kat CentOS7 (headless server):

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

Verify install:

rclone version

Configure rclone Remote

Run command ni kat server:

rclone config

Lepas tu ikut prompt:

  1. Taip n untuk new remote.
  2. Bagi nama, contoh: gdrive.
  3. Pilih storage type: taip nombor untuk Google Drive.
  4. Masukkan client_id dan client_secret yang ko dapat tadi.
  5. Scope: pilih 1 (full access).
  6. Root folder ID dan Service Account: tekan Enter untuk skip.
  7. Advanced config: taip n.
  8. Auto config: taip n sebab kita guna headless server.

Bila auto config ditolak, rclone akan bagi satu URL panjang. Copy URL tu.

Generate Token Guna Linux Desktop

Kat Linux Desktop (bukan server), install rclone dulu sama macam atas. Lepas tu run:

rclone authorize "drive" "CLIENT_ID" "CLIENT_SECRET"

Browser akan terbuka. Login Google account, bagi permission. Lepas tu rclone akan print token dalam terminal. Copy token tu.

Balik ke server, paste token tu bila diminta. Lepas confirm, remote gdrive dah ready.

Test Connection

rclone lsd gdrive:

Kalau keluar list folder dalam Google Drive, connection okay.

Setup Backup Script

Buat script mudah untuk backup:

#!/bin/bash
BACKUP_DIR="/path/to/backup"
DESTINATION="gdrive:backups/centos7"
DATE=$(date +%Y-%m-%d)

rclone sync $BACKUP_DIR $DESTINATION/$DATE --log-file=/var/log/rclone-backup.log

Save sebagai /usr/local/bin/gdrive-backup.sh, lepas tu bagi execute permission:

chmod +x /usr/local/bin/gdrive-backup.sh

Schedule Guna Cron

crontab -e

Tambah baris ni untuk backup setiap hari pukul 2 pagi:

0 2 * * * /usr/local/bin/gdrive-backup.sh

Verify Backup

Semak apa yang dah ter-upload:

rclone ls gdrive:backups/centos7

Semak log kalau ada issue:

tail -f /var/log/rclone-backup.log

Setup ni straightforward. Google Drive storage yang dah subscribe tu dapat digunakan sepenuhnya, tak buang duit je.

Leave a Comment