同期フィルターでファイルが除外されないときの対処法 — RcloneViewで正しい除外ルールを書く
除外したはずのファイルが転送先に現れる場合、原因はたいていフィルターの故障ではなく、パターンのアンカー(起点)の指定方法です。
ある開発者がプロジェクトフォルダーを Backblaze B2 に同期し、.git の除外ルールを追加しました。ところが翌朝、バケットには何千もの Git オブジェクトがそのまま入っていました。フィルタールールは rclone のマッチングロジックに従うため、スラッシュが 1 つ欠けるだけでルールのマッチ対象が変わります。RcloneView はこれらのルールを同期ウィザードの Step 3 に配置し、実際にファイルが動く前にテストできるドライラン(Dry Run)を提供しています。

すべてのクラウドを一か所で管理・同期
RcloneViewはrcloneのクロスプラットフォームGUIです。フォルダを比較し、ファイルを転送・同期し、クリーンなビジュアルインターフェースでマルチクラウドのワークフローを自動化できます。
- ワンクリック操作: コピー · 同期 · 比較
- 信頼性の高い自動化のためのスケジューラーと履歴
- Google Drive、OneDrive、Dropbox、S3、WebDAV、SFTPなどに対応
コア機能は無料。Plusで自動化機能を利用可能。
除外ルールがファイルを取りこぼす理由
フィルターの問題の多くはアンカーの指定に起因します。/ で始まるパターンは同期元のルートからのみマッチします。/ のないパターンはどの階層でもマッチします。RcloneView のフィルター設定にある例がその 違いを示しています。
.isoはツリー内のどこにあっても、その拡張子のファイルを除外します。/.git/*は同期元ルートにある.gitフォルダー直下のファイルだけを除外します。.git/はあらゆる階層の.gitフォルダーを除外します。多くの開発者が求めているのはこちらです。
/.git/* だけを書いた場合、client-a/app/.git のような入れ子のリポジトリは同期されたままです。* はフォルダーの境界で止まるため、そのサブフォルダーも同様です。アンカーなしのフォルダールールに切り替えれば、入れ子のリポジトリも除外されます。
2 つ目によくある間違いは、同期元フォルダーの選択ミスです。ルートにアンカーされたパターンは Step 1 で選んだフォルダーを基準にするため、同期元を 1 階層上に移すとマッチ対象が変わります。
ほかのフィルター設定も確認する
ウィザードのフィルターはカスタムルールだけではありません。Step 3 には Max file size(MB 単位)、Max file age(y、d、h、m、s 単位)、Max folder depth、そして Music、Video、Image 、Document、Google Docs、Box Docs 用の定義済みフィルターもあります。これらは組み合わせて適用されるため、以前に複製したジョブが予想外の動作をすることがあります。
たとえば、テスト時に設定したフォルダー階層の制限を忘れていると、深いサブフォルダーが何の表示もなくスキップされます。カスタムルールを書き直す前に、Job Manager でジョブを開き、不要な制限を解除してください。
ドライランと比較で修正を確かめる
フィルターの変更を本番データでテストしてはいけません。まずドライランモードでジョブを実行します。ドライランはコピーされるファイルと削除されるファイルの一覧を表示します。除外したパスがまだコピー一覧に表示されるなら、パターンはまだ間違っています。
除外されたファイルは転送先でも一切変更されない点に注意してください。不要なファイルがすでにバケットに入っている場合、新しいフィルターで一方向同期を実行してもそのまま残ります。Folder Compare でそれらを見つけ、転送先側の不要な .git フォルダーを選択してそこで削除してください。PLUS ライセンスでは、Folder Compare with Filter が同じルールを比較に適用するため、ジョブ が実際に管理する項目だけが表示されます。
ドライランの結果が正しければジョブを実行し、Job History のファイル数をドライランのプレビューと照らし合わせて確認します。
はじめに
同期ジョブ、フィルター、ドライラン、Folder Compare はすべて FREE ライセンスに含まれています。
- rcloneview.com から RcloneView をダウンロードします。
- Job Manager を開いてジョブを編集し、Step 1 の同期元フォルダーと Step 3 のフィルター設定を見直します。
- フォルダーがどの階層にも現れる可能性がある場合は、
/.git/*のようなルートアンカーのパターンを.git/に置き換えます。 - ドライランを実行して除外したパスが消えたことを確認し、Folder Compare で残ったファイルを整理します。
正確なフィルタールールはバックアップをスリムに保ち、ビルド成果物やリポジトリデータがクラウド料金に含まれるのを防ぎます。
関連ガイド: