2026 年リモートMacから成果物をpullする:lftp mirror/SFTPバッチと盲目rsyncの決定表、ステージング、SHA256ゲート、読み取り専用アンカー
成果物の引き抜きで単純なrsync一発は、切断や削除解釈の差で本番が半端なツリーを読むリスクがあります。再開可能なlftp mirrorとsftpバッチの使い分け、ステージング、SHA256ゲート、読み取り専用アンカーを一枚の決定表にまとめます。
1. リモートMac成果物の引き抜きで起きやすい三つの痛み
第一は途中切断で空ファイルが混ざること、第二は削除フラグの解釈差でツリーが縮むこと、第三は検証前にシンボリックを先に更新してハッシュ未確認ツリーを読むことです。
対策の核は、中間領域で受け、検証済みの集合だけを読み取り専用として公開する二段ゲートです。帯域や圧縮は公平転送や圧縮判断の稿と順序を揃えます。
- 本番ツリーへの直書きを禁止し、ステージングへ限定する
- マニフェストとSHA256をバッチ単位で一致させる
- 公開は読み取り専用アンカーへだけ向ける
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"
- ステージングを本番から分離し、書き込みはCI専用ユーザーに限定します。
- ジョブの開始終了、バイト数、ファイル数を構造化ログへ出し、マニフェスト名にジョブIDを埋め込みます。
- マニフェストにパス・サイズ・SHA256を列挙し、全文検証後に成功フラグを立てます。
- 検証済みディレクトリへ読み取りを付与し、本番参照のシンボリックリンクを原子に差し替えます。
- 失敗時はリンクを触らず隔離パスへ退避し、指数バックオフで再実行します。
- 週次で失敗率と平均転送を見直し、帯域と並列度を再調整します。
並列と再試行の本番値は回線とディスクに合わせます。sftpは-bにget -aやregetを並べ、バッチ自体をレビュー対象にします。
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 近傍のネイティブチェーンと合わせて再現性を上げやすいです。
検証ゲートと読み取り専用アンカーは省略しないでください。省略すると最速に見えた同期が本番を壊しやすくなります。