rclone syncのドライランを実行する

sync --dry-runでrcloneの一方向ミラーをプレビューし、転送と削除の予定を確認してから実際のコマンドを実行します。

最終確認日

スクリーンショットは英語版の画面です。

rclone syncは2番目のパスを1番目のパスに合わせます。コピー先にしかないファイルは削除される場合があるため、毎回方向を確認し、同じパスの組み合わせをプレビューしてください。--dry-runを使うと、rcloneはコピー、置き換え、削除を実行せず、予定された処理を表示します。

rcloneミラーの4段階の確認:組み込みのdosyaプロバイダーまたは代替S3を選び、両方のツリーを記録し、syncドライランの出力を確認して、実際のコマンドを別途承認します。
使用中のrcloneで使えるバックエンドを設定し、両方の一覧を保存して、--dry-runを外す前に削除予定をすべて確認してください。スクリーンショットを実物大で開く。

フォークを使わずにrcloneを設定する

現在のrcloneリリースにはdosyaバックエンドが含まれています。dosya専用のフォークはインストールしないでください。標準の設定コマンドを実行します:

rclone config

選んだ方向に必要な権限を持つAPIキーを作成してください。アップロードと削除が行われる可能性のあるクラウドのコピー先には、フルアクセスと対応するワークスペースのロール権限が必要です。ローカルへのダウンロードのみに使うクラウドのコピー元には読み取り専用を使えます。キーをターミナルの履歴や共有ログに残さないでください。

新しいリモートを作成し、dosyaと名付けて、ストレージプロバイダーの一覧からdosyaを選択してください。入力を求められたら、対象のワークスペースIDとAPIキーを入力します。ミラーを計画する前にネイティブのリモートを確認してください:

rclone lsf dosya:

プロバイダー一覧にdosyaがない場合は、rcloneを更新するか、dosyaのrcloneドキュメントに記載された標準S3バックエンドを代替として設定してください:

rclone config create dosya s3 \
  provider=Other \
  access_key_id=dos_your_access_key \
  secret_access_key=your_secret_access_key \
  endpoint=https://api.dosya.dev/s3 \
  region=us-east-1

rclone lsf dosya:WORKSPACE_ID

以降のコマンドはネイティブパスdosya:/mirror-checkを使います。代替S3ではワークスペースIDがバケットになるため、dosya:WORKSPACE_ID/mirror-checkを使ってください。

手順

  1. rclone configを実行し、組み込みのdosyaプロバイダーを選択して、rclone lsf dosya:が動作することを確認してください。プロバイダーがない場合は代替S3を設定し、代わりにdosya:WORKSPACE_IDを一覧表示してください。

  2. ./sample-sourceのような内容の分かる小さなローカルのコピー元と、dosya:/mirror-checkのような分離されたクラウドのコピー先を作成してください。コピー先に既にあるものはすべてバックアップしてください。

  3. ローカルのコピー元とdosya:のコピー先を再帰的に一覧表示し、出力を保存してください:

    rclone lsf ./sample-source --recursive
    rclone lsf dosya:/mirror-check --recursive
  4. 詳細な操作行を表示してプレビューを実行してください:

    rclone sync ./sample-source dosya:/mirror-check --dry-run --progress -vv
  5. コピー、置き換え、削除の対象として表示されたパスをすべて確認してください。Skipped copy as —dry-run is setはシミュレーションであることを示します。コピー先にしかないファイルを残す必要がある場合は、停止してrclone copyを使うか、そのファイルをミラーの外に移動してください。

  6. フィルター、コピー元の内容、カレントフォルダー、コピー先を変更した場合は、プレビューを再実行してください。2回目の確認後に限り、--dry-runを自分で外して実際のコマンドを実行してください:

    rclone sync ./sample-source dosya:/mirror-check --progress -vv
組み込みのdosyaプロバイダー、リモート設定項目、代替S3、コマンド例を示すdosyaのrclone連携ページ。
現在のrcloneリリースにはネイティブのdosya:プロバイダーが含まれます。古いビルドの一覧にない場合もS3ゲートウェイを使えます。スクリーンショットを実物大で開く。

削除と復元のルール

コピー元が空または誤っていると、コピー先のすべての項目が削除候補になります。フィルターもミラーの対象を変更します。--delete-excludedは除外されたコピー先の内容の削除を許可します。rcloneは通常、転送エラー後のコピー先の削除を避けますが、--ignore-errorsはその保護を緩めます。原因不明の予定を回避するために、どちらのフラグも追加しないでください。

パスを逆にするとリスクが変わります。このコマンドはローカルフォルダーをdosyaに合わせ、ローカルにしかないファイルを削除する場合があります:

rclone sync dosya:/mirror-check ./sample-download --dry-run --progress -vv

dosyaはコンピューターからのみ削除されたデータを復元できません。その方向での実行を承認する前に、独立したローカルバックアップを保持してください。ネイティブのdosya:コピー先への実際の同期では、削除対象の各項目が2回削除されます。最初のリクエストでdosyaのゴミ箱に移動し、2回目でストレージを解放するために完全に削除します。このバックエンドで削除されたコピー先だけの項目はゴミ箱から復元できないため、実際のコマンドを承認する前に独立したコピーを保持してください。

ドライラン自体は何も書き込まないため、元に戻せます。実際のコマンドはトランザクションではありません。後でエラーが起きる前に転送が成功する場合があり、再試行しても以前の変更は元に戻りません。

実行結果を検証する

コマンドの終了ステータスを記録し、コピー先を再度一覧表示して、どちらも変更せずにバイトを比較してください:

echo $?
rclone lsf dosya:/mirror-check --recursive
rclone check ./sample-source dosya:/mirror-check --download

終了ステータス0は、コマンドが残りのエラーを報告しなかったことを意味します。ファイルが転送された証拠にはなりません。ゼロ以外の場合、一部の処理が成功した状態で残ることがあります。再試行する前にdosyaのフォルダーを調べ、保存した実行前の一覧と比較してください。ネイティブバックエンドで削除された項目は、既にゴミ箱から完全に削除されています。

期待される結果

ドライランは両方のツリーを変更せず、正確な一方向ミラーの予定を表示します。承認後に実際の同期を実行すると、コピー先だけの項目を意図的に削除することも含め、コピー先がコピー元と一致し、rclone checkで内容の差異が見つからなくなります。

関連ガイド

この記事は役に立ちましたか?

評価の結果を読み込んでいます…

投票すると、回答を変更できるように、必要な投票用Cookieが最長180日間保存されます。

質問と回答

このガイドの手順について質問できます。質問は確認後に公開されます。

公開の質問には、アカウントの詳細、認証情報、非公開ファイルを含めないでください。これらについては 非公開サポート をご利用ください。

質問を読み込んでいます…

    dosyaアカウントにサインインすると、質問を投稿できます。

    やり直す前に結果を確認

    操作をもう一度確認する必要があるときは、次の共通の確認事項をご利用ください。