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 rcloneTermux のパッケージは古い場合がある(v1.60 など)。bisync 等の機能を安定して使いたい場合は、公式インストーラーで最新版を入れる:
bash
curl https://rclone.org/install.sh | bash
rclone version3. 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 を作る手順は以下の通り。
- Google Cloud Console にアクセス
- プロジェクトを作成
- API とサービス → ライブラリ で「Google Drive API」を有効化
- API とサービス → OAuth 同意画面 を設定
- ユーザータイプ: 外部
- アプリ名: 任意(例:
my-rclone) - テストユーザーに自分の Gmail を追加
- 認証情報 → OAuth クライアント ID を作成
- アプリケーションの種類: デスクトップアプリ
- 表示されたクライアント ID とシークレットを控える
テストユーザーに自分を追加しないと「アクセスをブロック」エラーが出る。認証画面で警告が出た場合は「詳細」→「(アプリ名)(安全ではないページ)に移動」で進める。
4. ストレージアクセスの許可
Termux からスマホ内のファイルにアクセスするには:
bash
termux-setup-storageこれで ~/storage/ 配下に Downloads 等がマウントされる。
5. ヘルパースクリプトの準備
ディレクトリ作成
bash
mkdir -p ~/bin ~/gdrive-workgdrive-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-pullgdrive-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-pushgdrive-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-lsgdrive-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-edit6. 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 10Termux のパスが通らない
~/bin にパスが通っていない場合は .bashrc に追加:
bash
export PATH="$HOME/bin:$PATH"