メインコンテンツまでスキップ

同期フィルターでファイルが除外されないときの対処法 — RcloneViewで正しい除外ルールを書く

· 約7分
Jay
Tech Writer

除外したはずのファイルが転送先に現れる場合、原因はたいていフィルターの故障ではなく、パターンのアンカー(起点)の指定方法です。

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

RcloneViewアプリのプレビュー

すべてのクラウドを一か所で管理・同期

RcloneViewはrcloneのクロスプラットフォームGUIです。フォルダを比較し、ファイルを転送・同期し、クリーンなビジュアルインターフェースでマルチクラウドのワークフローを自動化できます。

  • ワンクリック操作: コピー · 同期 · 比較
  • 信頼性の高い自動化のためのスケジューラーと履歴
  • Google Drive、OneDrive、Dropbox、S3、WebDAV、SFTPなどに対応
WindowsmacOSLinux
無料で始める →

コア機能は無料。Plusで自動化機能を利用可能。

除外ルールがファイルを取りこぼす理由​

フィルターの問題の多くはアンカーの指定に起因します。/ で始まるパターンは同期元のルートからのみマッチします。/ のないパターンはどの階層でもマッチします。RcloneView のフィルター設定にある例がその違いを示しています。

  • .iso はツリー内のどこにあっても、その拡張子のファイルを除外します。
  • /.git/* は同期元ルートにある .git フォルダー直下のファイルだけを除外します。
  • .git/ はあらゆる階層の .git フォルダーを除外します。多くの開発者が求めているのはこちらです。

/.git/* だけを書いた場合、client-a/app/.git のような入れ子のリポジトリは同期されたままです。* はフォルダーの境界で止まるため、そのサブフォルダーも同様です。アンカーなしのフォルダールールに切り替えれば、入れ子のリポジトリも除外されます。

同期フィルターを設定する前に RcloneView でリモートを追加する

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 でジョブを開き、不要な制限を解除してください。

フィルター適用後の同期結果を示す RcloneView のクラウド間転送画面

ドライランと比較で修正を確かめる​

フィルターの変更を本番データでテストしてはいけません。まずドライランモードでジョブを実行します。ドライランはコピーされるファイルと削除されるファイルの一覧を表示します。除外したパスがまだコピー一覧に表示されるなら、パターンはまだ間違っています。

除外されたファイルは転送先でも一切変更されない点に注意してください。不要なファイルがすでにバケットに入っている場合、新しいフィルターで一方向同期を実行してもそのまま残ります。Folder Compare でそれらを見つけ、転送先側の不要な .git フォルダーを選択してそこで削除してください。PLUS ライセンスでは、Folder Compare with Filter が同じルールを比較に適用するため、ジョブが実際に管理する項目だけが表示されます。

片側にのみ存在するファイルを表示する RcloneView の Folder Compare

ドライランの結果が正しければジョブを実行し、Job History のファイル数をドライランのプレビューと照らし合わせて確認します。

フィルター修正後に転送されたファイルを示す RcloneView の Job History

はじめに​

同期ジョブ、フィルター、ドライラン、Folder Compare はすべて FREE ライセンスに含まれています。

  1. rcloneview.com から RcloneView をダウンロードします。
  2. Job Manager を開いてジョブを編集し、Step 1 の同期元フォルダーと Step 3 のフィルター設定を見直します。
  3. フォルダーがどの階層にも現れる可能性がある場合は、/.git/* のようなルートアンカーのパターンを .git/ に置き換えます。
  4. ドライランを実行して除外したパスが消えたことを確認し、Folder Compare で残ったファイルを整理します。

正確なフィルタールールはバックアップをスリムに保ち、ビルド成果物やリポジトリデータがクラウド料金に含まれるのを防ぎます。


関連ガイド:

対応クラウドプロバイダー

Local Files
WebDAV
FTP
SFTP
HTTP
SMB / CIFS
Google Drive
Google Photos
Google Cloud Storage
OneDrive
Dropbox
Box
MS Azure Blob
MS File Storage
S3 Compatible
Amazon S3
pCloud
Wasabi
Mega
Backblaze B2
Cloudflare R2
Alibaba OSS
Ceph
Swift (OpenStack)
IBM Cloud Object Storage
Oracle Cloud Object Storage
IDrive e2
MinIO
Storj
DigitalOcean Spaces