Skip to content

Termux から Google Drive を rclone で操作する手順

1. 前提条件

  • Android 端末に Termux がインストール済み
  • Google アカウント
  • インターネット接続

注意: Android では FUSE(/dev/fuse)への一般アプリからのアクセスが制限されているため、rclone mount は使用できない。代わりに rclone copy / rclone sync によるコマンドベースの操作を行う。

2. rclone のインストール

bash
pkg update
pkg install rclone

Termux のパッケージは古い場合がある(v1.60 など)。bisync 等の機能を安定して使いたい場合は、公式インストーラーで最新版を入れる:

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

3. rclone の設定

bash
rclone config

対話形式で設定する。

項目入力内容
n/s/q>n(新規作成)
name>任意(例: gdrive
Storage>Google Drive を選択
client_id>自作の OAuth クライアント ID(空でも可)
client_secret>自作の OAuth クライアントシークレット(空でも可)
service_account_file>空のまま Enter
Use auto config?No を選択

「Use auto config?」で No を選ぶと URL が表示されるので、Android のブラウザで開いて認証し、表示されたトークンを Termux に貼り付ける。

OAuth クライアント ID の作成(推奨)

空のままでも動作するが、rclone 内蔵の共有キーはレートリミットに引っかかりやすい。自分専用の ID を作る手順は以下の通り。

  1. Google Cloud Console にアクセス
  2. プロジェクトを作成
  3. API とサービス → ライブラリ で「Google Drive API」を有効化
  4. API とサービス → OAuth 同意画面 を設定
    • ユーザータイプ: 外部
    • アプリ名: 任意(例: my-rclone
    • テストユーザーに自分の Gmail を追加
  5. 認証情報 → OAuth クライアント ID を作成
    • アプリケーションの種類: デスクトップアプリ
  6. 表示されたクライアント ID とシークレットを控える

テストユーザーに自分を追加しないと「アクセスをブロック」エラーが出る。認証画面で警告が出た場合は「詳細」→「(アプリ名)(安全ではないページ)に移動」で進める。

4. ストレージアクセスの許可

Termux からスマホ内のファイルにアクセスするには:

bash
termux-setup-storage

これで ~/storage/ 配下に Downloads 等がマウントされる。

5. ヘルパースクリプトの準備

ディレクトリ作成

bash
mkdir -p ~/bin ~/gdrive-work

gdrive-pull(リモート → ローカル)

bash
cat > ~/bin/gdrive-pull << 'EOF'
#!/bin/bash
# 使い方: gdrive-pull [リモートパス]
# 例: gdrive-pull Projects/myapp
REMOTE_PATH="${1:-.}"
LOCAL_DIR="$HOME/gdrive-work"

rclone copy "gdrive:$REMOTE_PATH" "$LOCAL_DIR/$REMOTE_PATH" --progress
echo "Pulled: gdrive:$REMOTE_PATH → $LOCAL_DIR/$REMOTE_PATH"
EOF
chmod +x ~/bin/gdrive-pull

gdrive-push(ローカル → リモート)

bash
cat > ~/bin/gdrive-push << 'EOF'
#!/bin/bash
# 使い方: gdrive-push [ローカルパス]
# 例: gdrive-push Projects/myapp
LOCAL_PATH="${1:-.}"
LOCAL_DIR="$HOME/gdrive-work"

rclone copy "$LOCAL_DIR/$LOCAL_PATH" "gdrive:$LOCAL_PATH" --progress
echo "Pushed: $LOCAL_DIR/$LOCAL_PATH → gdrive:$LOCAL_PATH"
EOF
chmod +x ~/bin/gdrive-push

gdrive-sync(簡易双方向同期)

bash
cat > ~/bin/gdrive-sync << 'EOF'
#!/bin/bash
# 使い方: gdrive-sync [パス]
SYNC_PATH="${1:-.}"
LOCAL_DIR="$HOME/gdrive-work"

echo "Pulling from remote..."
rclone copy "gdrive:$SYNC_PATH" "$LOCAL_DIR/$SYNC_PATH" --update
echo "Pushing to remote..."
rclone copy "$LOCAL_DIR/$SYNC_PATH" "gdrive:$SYNC_PATH" --update
echo "Synced: $SYNC_PATH"
EOF
chmod +x ~/bin/gdrive-sync

--update により更新日時が新しいファイルだけがコピーされる。

gdrive-ls(リモートのファイル一覧)

bash
cat > ~/bin/gdrive-ls << 'EOF'
#!/bin/bash
rclone lsf "gdrive:${1:-.}" --format "tsp" | sort -k1 -r | head -30
EOF
chmod +x ~/bin/gdrive-ls

gdrive-edit(単一ファイルの編集)

bash
cat > ~/bin/gdrive-edit << 'EOF'
#!/bin/bash
# 使い方: gdrive-edit path/to/file.txt
FILE="$1"
TMPDIR=$(mktemp -d)
BASENAME=$(basename "$FILE")

rclone copy "gdrive:$FILE" "$TMPDIR/"
${EDITOR:-vim} "$TMPDIR/$BASENAME"
rclone copy "$TMPDIR/$BASENAME" "gdrive:$(dirname "$FILE")/"
rm -rf "$TMPDIR"
echo "Uploaded: $FILE"
EOF
chmod +x ~/bin/gdrive-edit

6. Claude Code との連携

作業フロー

Google Drive (リモート)
    ↕ gdrive-pull / gdrive-push
~/gdrive-work/ (ローカル作業ディレクトリ)
    ↕ Claude Code が直接編集

CLAUDE.md の配置

Claude Code が作業ルールを自動的に理解できるよう、ワークスペースに配置する。

bash
cat > ~/gdrive-work/CLAUDE.md << 'EOF'
# Google Drive 作業ルール

このディレクトリは Google Drive とのローカル同期用ワークスペースである。

## 利用可能なコマンド

- `gdrive-pull <パス>` - Google Drive からローカルにダウンロード
- `gdrive-push <パス>` - ローカルから Google Drive にアップロード
- `gdrive-sync <パス>` - 簡易双方向同期(--update による新しいファイルのみコピー)
- `gdrive-ls <パス>` - Google Drive のファイル一覧
- `gdrive-edit <ファイル>` - 単一ファイルの取得→編集→アップロード

## 作業フロー

1. 作業開始前に必ず `gdrive-pull` で最新を取得する
2. ~/gdrive-work/ 配下のファイルを編集する
3. 編集完了後に `gdrive-push` でアップロードする

## 注意事項

- 直接 `rclone` コマンドでリモートを操作しない(ローカル経由で操作する)
- 大きなフォルダの pull は時間がかかるため、必要なサブフォルダだけを指定する
EOF

使用例

bash
cd ~/gdrive-work
claude

# Claude Code への指示例:
# 「gdrive-pull Documents/notes してから、TODO.md を整理して、終わったら gdrive-push して」

7. よく使う rclone コマンド

bash
# ファイル一覧
rclone ls gdrive:

# 特定フォルダの中身
rclone lsf gdrive:Documents/

# ダウンロード
rclone copy gdrive:path/to/file.txt ~/storage/downloads/

# アップロード
rclone copy ~/storage/downloads/file.txt gdrive:path/to/

# 差分確認
rclone check gdrive:path ~/gdrive-work/path

# 容量確認
rclone about gdrive:

8. トラブルシューティング

認証トークンの期限切れ

bash
rclone config reconnect gdrive:

ネットワークエラーが頻発する場合

リトライ回数を増やす:

bash
rclone copy gdrive:path ~/gdrive-work/path --retries 5 --low-level-retries 10

Termux のパスが通らない

~/bin にパスが通っていない場合は .bashrc に追加:

bash
export PATH="$HOME/bin:$PATH"