2026SequoialaunchdcronrsyncSFTPopenrsyncremote Mac

2026 macOS Sequoia 무인 rsync/SFTP 정지: launchd·cron·openrsync·ssh-agent 의사결정 매트릭스

터미널에선 되는데 launchd·cron만 멈추는 사례가 반복됩니다. Sequoia/usr/bin/rsyncopenrsync로 이어져 대규모 트리에서 조용히 멈출 수 있고, 무인 잡은 TTY가 없어 ssh-agent 없는 암문구 키에 막힙니다. 층을 가른 뒤 openrsync·체크섬·병행 SFTP·원자 릴리스로 연결합니다.

먼저 데몬이 보는 PATH·SSH_AUTH_SOCK·작업 디렉터리를 찍고, L0 BatchMode--rsync-path·--protocol=28·GNU 쌍을 정합니다.

성공은 종료 0이 아니라 스테이징·검증·원자 전환입니다. SFTPMAC 호스팅 Mac과 자가 운용의 TCO·당번 부담을 비교합니다.

openrsynclaunchdcronssh-agentremote Mac
Sequoia launchd cron 무인 rsync SFTP openrsync

터미널을 그대로 복붙한 무인은 없다

대화·데몬 괴리. 터미널은 로그인 PATH·ssh-agent·(가능한) Touch ID 키를 씁니다. launchd·cron은 박지 않으면 못 씁니다. 연결 직후·목록 도중에 멈춤이 잦고, 곧장 거절이 아닐 때가 많습니다.

openrsync. 다파일 뒤 파일 사이에서 멈춤. WAN·디스크 풀과 패턴이 다릅니다. 프로토콜·쌍끼리 이진·대형 트리는 잡 분할.

sftp -b. 프롬프트 불가, plist에 stderr·-v·배치 쪼개기.

릴리스. rsync만 고치고 원자·체크섬을 빼면 중간 손상 노출, 성공=검증된 바이트.

증상을 층으로 쌓기: 환경과 프로토콜

L0 BatchMode=yes 동일 유저, 여기서 막히면 rsync 앞. L1 목록·바이트 정지. L2 --rsync-path·--protocol=28.

launchd에서 UserName, WorkingDirectory, 표준 출력·에러를 점검하고, LaunchDaemon과 LaunchAgent의 키체인 차이를 인지하십시오. 무인용은 암문구 없는 CI 키를 쓰고 원격은 업로드 전용 계정에만 붙입니다. 자체 호스트 러너는 PATH·홈이 달라지니 래퍼 맨 위에 id·pwd를 남깁니다. 공유 Mac 인입이면 동시 상한으로 재시도 난조를 막고, PATH는 문서화된 plist가 암묵적 기본보다 낫습니다. 재시도 통계를 용량 계획에 넣어, openrsync가 여러 번 돌아야 하는 꼬리를 동시성에 반영하십시오.

수치로 ‘감’ 대신: 멈춘 초를 잰다

플래그를 바꾸기 전에 24시간 이상 같은 운용으로 기록을 남깁니다. 시작·종료 시각, 파일 수, 바이트, 종료 코드, 바이트가 멈춘 연속 초를 표로 쌓고, 진행이 끊기면 timeout과 경보로 이어질 임계를 둡니다. RTT·손실과 겹쳐 L2와 L0를 혼동하지 마십시오. CI 성공은 수송·체크섬·원자 심볼릭 절환의 세 구간으로 나누고, openrsync 재시도는 비율로 봅니다. Sequoia 점 릴리스마다 베이스라인을 다시 그으십시오. 분기 말 업로드 몰림은 합성 부하로 검증하고, 에스컬은 plist → BatchMode sshrsync 버전 → NAT 순으로 1장에 고정합니다. Intel·Apple 혼재 풀은 --rsync-path를 나누고, 로그 접두어와 Grafana 시리즈 이름을 맞춥니다. 이중 스택·프락시·대역 설계는 별 L0입니다.

첫 액션

증상가능우선리스크
데몬만PATH·에이전트·TTYexport·키·BatchMode여러 plist 충돌: 작업마다 격리
트리 중openrsync 편--protocol=28·--rsync-path잘못은 빠름, stg
SFTP프롬·권한-v·쪼개기·bye로그 민감
OS 후툴 드재핀·기준쌍·지원면

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맥락 id·pwd·마스크 env. 2 ssh -o BatchMode=yes -o ConnectTimeout=10 선. 3 --rsync-path+버전·--protocol=28 문서. 4 CI·ssh-agent·암문구 가정 금지. 5 timeout·백오프·재시도 번호. 6 스테이징 후 원자 링크.

7단계: 월별로 재시도·꼬리 지연을 모읍니다. 분기마다 전송 중단·러너 재부트를 연습하고, 래퍼·파이프라인을 git으로 묶으며 로그는 로테이트합니다. --protocol=28·arch--rsync-path는 내부 위키에 사유 1행씩, 스테이징에선 GNU rsync를 뺀 강등 드릴로 알람을 검증합니다. 암문구 키가 정책이면 승인된 비대화 경로로 풀고, L7/대역·이중 스택은 본문 밖 항목입니다. SFTPMAC는 스테이징·Mac 인입·감시를 한 모델로 쓰기 쉬울 때 가치를 비교하십시오.

관련 읽을거리

병행 SFTP·ControlMaster·chroot·팀·권한·. ControlMaster는 핸드셰이크, openrsync 정지는 별 축입니다. 자가 Mac은 TCO·plist·권한을 한꺼번에, 문서·알람이 갖춰진 임대 인입과 비교하십시오.

자주 묻는 질문과 SFTPMAC 대비

시스템 rsync를 애초에 못 쓰게 막아야 하지 않나요?

원칙 금지는 아닙니다. 작고 로컬이면 끼어 있는 바이너리로도 됩니다. 멀리 있고, 파일 수가 매우 크고, 무인이면 GNU rsync로 고정하고 기록에 버전·사유를 쓰는 편이 맞는 경우가 많습니다.

지금도 cron 써도 괜찮나요?

Apple 쪽 권고는 launchd입니다. cron이 남아 있다면, 환경이 거의 없다는 전제로 두고, plist와 똑같이 PATH·키·쉘·작업 루트를 박아 넣는 편이 안전합니다.

정리: PATH·ssh-agent·BatchMode·rsync 정렬·timeout·스테이징·원자 릴리스. 한계는 이중 스택·프락시·대역. SFTPMAC Mac은 경계·감시·릴리스를 한 모델로, 파이프는 팀이 유지합니다. 30일 지표로 TCO를 비교하십시오.