AutoDL 동기화은(는) 무엇을 하나요?
이 스킬에 포함된 스크립트를 사용하여 프로젝트를 동기화하세요.
이 스크립트가 요청된 작업을 수행할 수 있는 경우 수동으로 scp 또는 rsync 명령어를 구성하지 마세요.
프로젝트 찾기
동기화 스크립트는 프로젝트 루트를 동적으로 결정합니다.
Git 저장소 루트를 우선으로 사용합니다. 현재 디렉터리가 Git 저장소 내부에 없는 경우, 상위 디렉터리에서 .autodl-sync 파일을 찾습니다.
로컬 프로젝트 경로를 하드코딩하지 마세요.
프로젝트 구성
프로젝트별 동기화 설정은 다음 위치에 저장됩니다:
<프로젝트-루트>/.autodl-sync
설정 파일에서는 다음을 정의할 수 있습니다:
- 원격 SSH 호스트
- 원격 기본 디렉터리
- 원격 프로젝트 이름
- 명시적 원격 디렉터리
- Git 인식 또는 명시적 업로드 제외 항목
- 추가 업로드 제외 항목
- 선택적 또는 전체 프로젝트 결과 다운로드
- 풀 제외 항목, 최대 파일 크기, 삭제 및 덮어쓰기 동작
- rsync 동작
구성 로직을 중복하지 말고 제공된 스크립트를 통해 동기화 설정을 읽으세요.
코드 업로드
사용자가 다음을 요청할 때:
- 코드 동기화
- 코드 업로드
- 현재 소스 코드 배포
- AutoDL 복사본 업데이트
다음을 실행하세요:
scripts/push-code.sh <프로젝트-루트>
프로젝트 루트가 이미 현재 작업 디렉터리인 경우 인수는 생략할 수 있습니다.
업로드 필터는 항상 필수 안전 제외 항목을 적용합니다. auto 모드에서는 저장소 루트에 .gitignore가 있으면 Git이 추적하고 무시하지 않은 파일 목록을 사용하고, 그렇지 않으면 설정된 제외 항목을 사용합니다. 프로젝트 EXCLUDES_APPEND 항목은 모든 모드에서 적용됩니다.
SYNC_DELETE=true는 해결된 업로드 모드가 excludes인 경우에만 지원됩니다. Git 파일 목록 모드는 원격의 모든 오래된 파일을 안전하게 식별할 수 없으므로 전체 삭제 미러링을 암시하지 않고 실패해야 합니다.
결과 다운로드
사용자가 다음을 요청할 때:
- 학습 결과 가져오기
- 체크포인트 다운로드
- 로그 검색
- 예측 결과 검색
- 실험 출력 동기화
다음을 실행하세요:
scripts/pull-results.sh <프로젝트-루트>
PULL_DIRS 항목은 REMOTE_DIR에 대해 상대적입니다. 빈 배열은 아무것도 가져오지 않습니다. PULL_ALL=true는 원격 프로젝트 전체를 명시적으로 가져오며, 비어 있지 않은 PULL_DIRS와 함께 사용할 수 없습니다. 풀 제외 항목, 최대 파일 크기, 로컬 삭제 및 덮어쓰기 보호는 업로드 필터와 독립적입니다.
코딩 워크플로우
프로젝트 지침에서 코드 변경 후 동기화를 명시적으로 요구하는 경우:
- 요청된 소스 코드 수정을 완료하세요.
- 적절한 로컬 검증 또는 테스트를 실행하세요.
- 검증이 성공하면
push-code.sh를 실행하세요. - 동기화 성공 여부를 보고하세요.
사용자가 명시적으로 원격 실행을 요청하지 않는 한 자동으로 원격 학습을 시작하지 마세요.
SSH 인증
AutoDL 인증은 프로젝트의 .autodl-sync에 구성된 전용 로컬 SSH 키를 사용합니다.
개인 키는 로컬 시스템에 남아 있어야 합니다.
새 AutoDL 인스턴스에 대해 공개키 인증이 아직 구성되지 않은 경우 다음을 실행하세요:
scripts/setup-key.sh <프로젝트-루트>
이 작업은 공개 키를 설치하기 위해 AutoDL 계정 비밀번호를 한 번 대화식으로 요청할 수 있습니다.
설정이 완료된 후에는 푸시 및 풀 작업에서 공개키 인증을 사용해야 합니다.
SSH 개인 키를 절대 출력, 읽기, 업로드, 복사 또는 노출하지 마세요.
안전
SSH 개인 키를 절대 검사, 출력, 복사 또는 수정하지 마세요.
SSH 연결 설정은 프로젝트의 .autodl-sync에서 읽어와 ssh 및 rsync에 명시적으로 전달됩니다. 스크립트는 ~/.ssh/config에 항목이 필요하지 않습니다.
자격 증명이나 비밀을 업로드하지 마세요.
프로젝트의 .autodl-sync에 정의된 제외 항목 및 동기화 동작을 준수하세요.
프로젝트 구성에서 명시적으로 요청하지 않는 한 업로드 또는 풀 삭제를 활성화하지 마세요. 각 동기화 후에는 스크립트의 파일 작업 요약을 사용자에게 보고하세요.