リモートMacから成果物を同期するCIパイプラインの概念図

2026 年リモートMacから成果物をpullする:lftp mirror/SFTPバッチと盲目rsyncの決定表、ステージング、SHA256ゲート、読み取り専用アンカー

成果物の引き抜きで単純なrsync一発は、切断や削除解釈の差で本番が半端なツリーを読むリスクがあります。再開可能なlftp mirrorとsftpバッチの使い分け、ステージング、SHA256ゲート、読み取り専用アンカーを一枚の決定表にまとめます。

1. リモートMac成果物の引き抜きで起きやすい三つの痛み

第一は途中切断で空ファイルが混ざること、第二は削除フラグの解釈差でツリーが縮むこと、第三は検証前にシンボリックを先に更新してハッシュ未確認ツリーを読むことです。

対策の核は、中間領域で受け、検証済みの集合だけを読み取り専用として公開する二段ゲートです。帯域や圧縮は公平転送圧縮判断の稿と順序を揃えます。

  1. 本番ツリーへの直書きを禁止し、ステージングへ限定する
  2. マニフェストとSHA256をバッチ単位で一致させる
  3. 公開は読み取り専用アンカーへだけ向ける

2. lftp mirror、SFTPバッチ、盲目rsyncをどう読み分けるか

再開性・監査・実装差の三軸で選びます。lftpは再開と並列、sftpはバッチ固定に強く、盲目rsyncはゲート無しではリスクが残ります。

方式強み注意点典型用途
lftp mirror再開・並列・除外スクリプトとログ設計夜間の大量同期
sftpバッチ手順固定・監査小ファイル負荷限定パッケージ
盲目rsync差分効率中間露出・削除差検証済み間の最終反映

盲目rsyncは検証済みツリー同士の最終反映に寄せ、初回取り込みはlftpかsftpへ寄せます。link-dest 稿と併読してください。

3. 壊れないラインを作るための実務手順

lftp -u user,pass sftp://remote.example \
  -e "set net:max-retries 6; set net:reconnect-interval-base 4; \
  mirror --verbose --parallel=4 --continue \
  /var/stage/incoming/build-1239 /local/stage/incoming/build-1239; bye"
  1. ステージングを本番から分離し、書き込みはCI専用ユーザーに限定します。
  2. ジョブの開始終了、バイト数、ファイル数を構造化ログへ出し、マニフェスト名にジョブIDを埋め込みます。
  3. マニフェストにパス・サイズ・SHA256を列挙し、全文検証後に成功フラグを立てます。
  4. 検証済みディレクトリへ読み取りを付与し、本番参照のシンボリックリンクを原子に差し替えます。
  5. 失敗時はリンクを触らず隔離パスへ退避し、指数バックオフで再実行します。
  6. 週次で失敗率と平均転送を見直し、帯域と並列度を再調整します。

並列と再試行の本番値は回線とディスクに合わせます。sftpは-bget -aregetを並べ、バッチ自体をレビュー対象にします。

4. 数値目安とチェックリスト

項目推奨レンジ根拠メモ
再試行基底秒3〜8秒短すぎるとレート制限
並列本数2〜8ランダムI/Oとのトレード
ハッシュスライス約200MB再転送粒度
キュー警告待ち3件+帯域再配分の目安

数値は目安です。失敗ログの実測を追記し、四半期で表を更新します。

5. ステージングとSHA256ゲートを一体で設計する理由

ステージングは検証境界です。受信直後は未確定、SHA256一致で確定へ遷移します。確定ツリーはCI以外へ書き込み拒否し、マニフェストをビルドIDに結び旧世代は読み取りのまま保持します。

第一ゲートはファイル整合、第二ゲートは必須パスと構造です。第二で落ちても本番は旧シンボリックのままにでき、読み取り専用アンカーと相性が良いです。

6. 読み取り専用アンカーで公開面を固定する

本番はcurrentなど単一シンボリックだけを見ます。差し替えは短いトランザクションで冪等にし、書き込みテストはコピー先のみで行い元ツリーへ戻しません。

アンカーは読み取り専用に保ち、部分更新の漏えいを防ぎます。コンテナからマウントする場合もゲストは読み取りのみとし、差し替えイベントを中央ログへ送ってビルドIDを追跡します。

7. よくある質問

質問 まずrsyncで速く取りたいのですが、ダメでしょうか。回答 速さ自体は問題ではありません。問題は検証前の本番直結です。ステージングとハッシュゲートを挟めば、最終段のrsyncは有効な選択肢になります。

質問 SFTP専用ユーザーの権限はどこまで絞ればよいですか。回答 ステージング配下の書き込みと、公開アンカーへのシンボリック差し替えに必要な最小権限に留め、他パスは拒否します。

8. まとめ

要点は、再開転送でステージングへ受け、SHA256後に読み取り専用アンカーへ出す流れです。lftpとsftpは役割分担し、盲目rsyncは最終段へ寄せます。

自前ラインはクライアント差分・帯域争奪・夜間監視のコストが付き、統一権限の常時ホストを自前で揃えるのは負荷が高いです。

SFTPMAC のリモート Macのホスト型では転送と権限のベースラインが揃いやすく、Apple Silicon 近傍のネイティブチェーンと合わせて再現性を上げやすいです。

検証ゲートと読み取り専用アンカーは省略しないでください。省略すると最速に見えた同期が本番を壊しやすくなります。