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"