2026SequoialaunchdcronrsyncSFTPopenrsyncremote Mac

2026 macOS Sequoia 無人rsync/SFTP ハング:launchd・cron・openrsync・ssh-agent 意思決定マトリクス

ターミナル成功→launchd/cron 停滞は定番。Sequoia の /usr/bin/rsyncopenrsync 化し、高回転木で静かな留まりが出ます。無人は TTY 無しで鍵待ちも同棲。階層切分と行動表、openrsync 選定チェックサム・ゲートSFTP 並行原子的リリース へ。

帯域先買いは当たりにくい。daemon が見る PATHSSH_AUTH_SOCKWorkingDirectory を可視化し、留まりと鍵待ちを分離。L0 の後、--rsync-path--protocol=28。GNU rsync 双方釘付を中長期化します。

無人成功は、終了ゼロより「ステージ検査と可視的切替」で測ります。自前累積と、入口を製品化した SFTPMAC との対比で、当番圧下の分業価値を測る前提を置きます。

openrsynclaunchdcronssh-agentremote Mac
2026 macOS Sequoia launchd cron 無人 rsync SFTP 遠隔 Mac openrsync ssh-agent

想定違い:無人はターミナル流用ではない

対話成功・デーモン失敗。 ログインシェルが足す PATHssh-agent のソケット、触覚的な鍵アクセス。plist の Job と cron 行は、明示的に埋めない限り、ほぼゼロからです。遠隔 Mac の認可は「すぐ Permission denied」ではなく、TCP 後の列挙かユーザ認可で固まる、という併存典型があります。

大木での openrsync 留まり。 多ファイル化が進行したあと、ファイル境で動き止まる報告群です。帯域枯渇は通常もっと非連続的で、満盤は遅延うちに I/O エラーを上げることが多いです。大木は複数独立ログのジョブ分割も含め、実装層整列と併用します。

sftp -b 無限待ち。 非対話は固着。パス誤り・権限は stderr 取りと冗長ログ前提で修正。

原子的配布からの分離危険。 同期直しだけ先行は中間露出。ステージ・和検・symlink を一連合格に。

層分け:環境層とプロトコル層

L0 は、同一ユーザ文脈で BatchMode=yesssh を通す所までです。ここが詰まる段階は rsync 手前です。L1 はファイル一覧構築の足止めと、1 要素のバイト中の足止めの分離です。L2 は openrsync と遠端 rsync 実装の相性、--rsync-path--protocol=28 といった、実装層合わせの話です。これらの語彙を混ぜないのが、夜間当番の意思決定を速くします。

plist では UserNameWorkingDirectory、標準入出力、Daemon/Agent の鍵束縛を明文化します。無人向けは 専用 CI 鍵(無パスまたはエージェント前注入)を既定にし、遠端はアップロード限定アカウントへ。自己ホストランナーは PATH とホームがさらに異なるため、ラッパ先頭で idpwd を残します。多チーム共有マシンでは再試行嵐と同時枠を設計に入れ、明示 PATH とラッパ権限の組を監査可能にします。

可引用:留まり秒数を「なんとなく」にしない

先に 24 時間分の基線を取ります。起終・件数・バイト・終了コードと前進ゼロ秒を記録し、約 300 秒超は timeout と通知に繋ぎます。RTT/損失と相関し、L0 と L2 の取り違えを防ぎます。CI 成功は運搬・チェックサム・原子切替の三段階、再試行は率。点リリースごとに再ベース、四半末は負荷演習。段取り: plist、BatchModersync、NAT。混在 arch--rsync-path 分岐。名寄せはラベルとログ系統。二重スタック/企業プロキシは別 L0。

行動表:最初の一押し

症候高確度原因最優先リスク
デーモンだけPATH/エージェント/TTYPATH 明示と鍵前載せ、BatchMode 早期失敗同機多 plist 干渉:ラベル単位分離
木途中openrsync 対向偏り--protocol=28、GNU へ --rsync-path遠端誤路は即失敗:stg で
SFTP 黙着非対話プロンプト-v 分割、明示 bye冗長ログ:保管先暗号化
小更新の後揺れ同梱工具の漂い二進の再釘付、基線回帰二系統は当面サ面増

7 手順

#!/bin/bash
set -euo pipefail
export PATH="/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export RSYNC_RSH="ssh -o BatchMode=yes -o ServerAliveInterval=30"
/usr/bin/rsync -av --protocol=28 --rsync-path=/opt/homebrew/bin/rsync \
  ./artifacts/ "[email protected]:/data/inbox/staging/"

1: plist 文脈で idpwd、マスク付き env です。

2: 先に ssh -o BatchMode=yes -o ConnectTimeout=10

3: --rsync-path 固定と版メモ。openrsync 併用時は --protocol=28

4: 専用 CI か管理 ssh-agent。対話パスは禁止。

5: timeout と有界再試行、回数列を出す。

6: ステージ dry-run 後、リリース手順の原子性へ接続。

7: 月次再試行率、四半期災害注入。ラッパを git 管理に載せ、非対話鍵導体とログ回転を定例化。各フラグに採用理由 1 行。混在 arch--rsync-path 分岐。L7/二重スタックは別プログラム。

関連

同時枠 concurrent SFTPControlMasterchroot多チームトップ。自前はハードと plist 風化を同時背負い、既定観測の入口の方が当番圧下では MTTR 短い場合があります。

FAQ

系統 rsync 全面廃棄が必要か

全面ではない。小さな手元は系統利用でもよい。遠距離・大規模・無人に GNU 釘付と文書上の根拠が妥当です。閾件数の一次データを残してください。

cron は今もか

Apple 推奨は launchd です。残すなら、最小環境を既定と自覚し、plist と同等の明示を。

要約: 明示 PATHssh-agentBatchMode 先行、rsync 整合、timeout、原子的手順。限界は帯域・二重スタック。SFTPMAC は観測可能な入口面、パイプ所有は自社のまま。