rsync 작업을 관리형 파일 흐름으로 전환하기

IT 엔지니어

시작하기

기본 개념

Linux와 Unix 환경에서는 rsync 명령을 사용해 서버와 스토리지 사이의 파일을 동기화하는 방식이 많이 사용됩니다.

예를 들어 업무 서버의 특정 폴더를 백업 서버로 복사하거나, 생성된 파일만 원격 서버에 반영하고, 정해진 시간마다 여러 시스템의 디렉터리를 동기화할 수 있습니다.

일반적인 rsync 작업은 출발 경로와 대상 경로, 제외 조건과 실행 옵션을 셸 스크립트나 Cron 작업에 직접 작성합니다.

text
Application Server
       │
       │ /data/report
       ▼
   rsync Script
       │
       │ Schedule / Options
       ▼
   Remote Server
       │
       ▼
 /backup/report

하지만 동기화 작업이 늘어나면 서버별 rsync 명령과 Cron 설정, 제외 규칙과 실행 로그가 여러 환경에 분산될 수 있습니다.

예를 들어 한 서버에서는 매일 새벽에 백업 폴더를 동기화하고, 다른 서버에서는 파일 변경 후 즉시 원격 시스템으로 반영하도록 구성할 수 있습니다. 작업별 설정과 실행 결과가 각각의 스크립트와 서버에 나뉘어 있으면 전체 동기화 현황이나 실패 이력을 한곳에서 확인하기 어려울 수 있습니다.

관리형 Flow로 전환하면 기존 rsync 작업에서 사용하던 출발 경로와 대상 경로, 파일 조건과 실행 시점을 Flow로 구성하고, 여러 동기화 작업의 실행 결과와 실패 이력을 관리할 수 있습니다.

text
기존

Server A ──┐
           ├──▶ rsync Script + Cron ──▶ Target
Server B ──┘


전환 후

Server A ──┐
           ├──▶ Managed Flow ──▶ Target A
Server B ──┘         │
                     ├── Runs
                     ├── Activity
                     └── Failure History

기존 서버에서 파일을 생성하거나 처리하는 작업은 유지하면서, 실제 동기화 작업과 실행 조건을 중앙에서 관리하는 방식으로 전환할 수 있습니다.

전환 범위

하나의 rsync 스크립트에는 단순한 파일 동기화 외에도 파일 준비와 로그 기록, 완료 후 처리 같은 작업이 함께 포함될 수 있습니다.

예를 들어 다음과 같은 배치 작업을 사용할 수 있습니다.

text
Daily Job
    │
    ├── Generate Files
    ├── Compress
    ├── rsync
    ├── Write Log
    └── Cleanup

이 경우 모든 작업을 Flow로 다시 작성할 필요는 없습니다.

파일 생성이나 압축, 업무별 처리 로직은 기존 환경에서 유지하고, 실제 파일을 동기화하는 rsync 구간과 실행 조건을 관리형 Flow로 이전할 수 있습니다.

기존 작업전환 방식
파일 생성기존 프로그램 또는 스크립트 유지
파일 처리기존 셸 명령 유지
파일 동기화rsync에서 Flow로 전환
실행 일정Cron 조건을 Flow 실행 조건으로 이전
실행 결과중앙 Runs에서 확인
실패 기록작업별 실행 이력으로 관리
후속 작업Flow 결과에 따라 연결

이렇게 하면 기존 자동화 환경을 한 번에 교체하지 않고 파일 동기화와 운영 관리가 필요한 부분부터 관리형 Flow로 전환할 수 있습니다.

IT 엔지니어

작업 분석

먼저 기존 rsync 명령과 스크립트에서 실제 동기화에 사용되는 정보를 확인합니다.

rsync 작업은 단순히 두 경로 사이의 파일을 복사하는 경우도 있지만, 특정 확장자를 제외하거나 하위 디렉터리를 함께 처리하고, 변경된 파일만 반영하도록 구성하는 경우도 있습니다.

따라서 기존 작업을 다음 항목으로 나누어 확인합니다.

확인 항목확인 내용
Source동기화할 파일 또는 디렉터리
Source Path원본 파일이 있는 경로
Target파일을 반영할 시스템
Target Path대상 저장 위치
동기화 범위전체 파일 또는 변경 파일
제외 조건동기화하지 않을 파일과 경로
실행 조건일정, 변경 또는 외부 실행
기존 옵션rsync 명령에 적용된 조건
후속 처리동기화 완료 후 실행되는 작업

예를 들어 여러 서버에서 서로 다른 폴더를 동기화하고 있다면 작업별로 다음과 같이 정리할 수 있습니다.

text
┌─────────────────┐
│ Source Server A │
│ /data/report    │
└────────┬────────┘
         │
         ├──────────────┐
         │              │
         ▼              ▼
   Daily Sync      On-Demand Sync
         │              │
         └──────┬───────┘
                ▼
           Target Storage

이 과정을 통해 기존 서버와 스크립트에 분산되어 있던 동기화 경로와 실행 방식을 Flow 구성 단위로 정리할 수 있습니다.

경로 이전

기존 rsync에서 사용하던 출발 경로와 대상 경로를 Flow의 Source와 Target으로 구성합니다.

예를 들어 업무 서버의 /data/export 폴더를 원격 백업 서버의 /backup/export 경로로 동기화하고 있다면 동일한 파일 흐름을 Flow에 적용합니다.

text
┌────────────────────────┐
│ Source                 │
│                        │
│ /data/export/          │
│   ├── report.csv       │
│   ├── result.zip       │
│   └── daily/           │
└────────────┬───────────┘
             │
             │ Sync Flow
             ▼
┌────────────────────────┐
│ Target                 │
│                        │
│ /backup/export/        │
└────────────────────────┘

기존 rsync에서 사용하던 경로 정보를 그대로 옮기되, 실제 업무에 필요한 파일 범위와 대상 저장 위치를 함께 확인합니다.

특히 하나의 스크립트에서 여러 대상 시스템으로 동기화하는 경우에는 대상별 Flow를 분리하거나 하나의 흐름 안에서 필요한 전송 구조를 구성할 수 있습니다.

동기화 조건

경로를 구성한 뒤에는 기존 rsync 작업이 어떤 기준으로 실행되는지 확인하고 Flow의 실행 조건으로 이전합니다.

동기화 작업은 업무 환경에 따라 정해진 시간에 반복할 수도 있고, 특정 파일이 생성되거나 변경된 이후 시작할 수도 있습니다.

text
                    Sync Trigger
                         │
          ┌──────────────┼──────────────┐
          ▼              ▼              ▼
       Schedule      File Change    External Request
          │              │              │
          └──────────────┼──────────────┘
                         ▼
                      Sync Flow
                         │
                         ▼
                       Target

예를 들어 다음과 같은 실행 기준을 구성할 수 있습니다.

실행 기준활용 방식
Date/Time매일 또는 매주 정해진 시간에 실행
File Change새 파일 생성 또는 변경 후 실행
After Transfer이전 파일 처리 작업 완료 후 실행
URL Request외부 시스템 요청으로 실행

기존 Cron에서 매일 특정 시간에 실행하던 작업은 일정 기반 Flow로 구성할 수 있고, 다른 파일 처리 작업이 완료된 뒤 rsync를 실행하던 구조는 이전 작업의 결과와 연결할 수 있습니다.

반영 방식

기존 rsync 작업에서는 전체 디렉터리를 반복해서 처리하기보다 변경된 파일만 반영하거나, 특정 파일과 경로를 제외하는 방식이 사용될 수 있습니다.

Flow로 전환할 때도 실제 동기화에 필요한 파일 범위를 명확하게 구성합니다.

text
Source Folder
     │
     ├── report_01.csv ──────┐
     ├── report_02.csv ──────┤
     ├── temp.log ───────────┼── 제외
     └── archive/ ───────────┤
                              ▼
                         File Rules
                              │
                    ┌─────────┴─────────┐
                    ▼                   ▼
                 Include             Exclude
                    │                   │
                    ▼                   └── 유지
                 Sync Flow
                    │
                    ▼
                  Target

다음과 같은 기준으로 동기화 범위를 구성할 수 있습니다.

파일 처리 기준구성 방법
전체 경로지정된 폴더의 파일을 동기화
특정 파일필요한 파일만 선택
확장자 기준업무에 필요한 파일 유형만 포함
제외 규칙임시 파일이나 로그 파일 제외
하위 경로필요한 디렉터리 구조 유지
변경 파일이전 실행 이후 변경된 파일 중심으로 처리

이렇게 하면 기존 스크립트에 작성되어 있던 파일 범위와 처리 기준을 Flow에서 확인하고 관리할 수 있습니다.

흐름 구성

동기화 경로와 실행 조건을 구성한 뒤에는 Source에서 Target까지 이어지는 전체 파일 흐름을 확인합니다.

하나의 Source에서 하나의 Target으로 파일을 반영하는 기본적인 구조뿐 아니라, 여러 서버의 데이터를 하나의 중앙 저장소로 모으거나 하나의 파일을 여러 시스템에 반영하는 구조도 구성할 수 있습니다.

text
                Source Systems
              ┌──────┼──────┐
              ▼      ▼      ▼
           Server A Server B Server C
              │      │      │
              └──────┼──────┘
                     ▼
                 Sync Flow
                     │
              ┌──────┴──────┐
              ▼             ▼
        Backup Storage   Archive

업무 환경에 따라 동기화 흐름을 다음과 같이 확장할 수 있습니다.

  • 여러 서버의 결과 파일을 중앙 스토리지로 수집

  • 업무 폴더의 변경 파일을 원격 서버에 자동 반영

  • 하나의 기준 폴더를 여러 지점의 서버에 배포

  • 처리 서버의 결과 파일을 다음 시스템으로 연결

  • 백업 파일을 원격 스토리지에 반복 동기화

이를 통해 개별 서버의 스크립트로 관리하던 파일 동기화 작업을 하나의 Flow 단위로 구성할 수 있습니다.

실행 관리

Flow가 실행되면 Runs에서 각 동기화 작업의 진행 상태와 결과를 확인할 수 있습니다.

여러 작업이 동시에 실행되는 경우에도 실행 목록에서 상태를 비교하고, 특정 Run을 선택해 Source와 Target, 처리된 파일과 실행 시간을 확인할 수 있습니다.

실행 결과에서는 다음과 같은 정보를 확인할 수 있습니다.

확인 항목확인 내용
Source동기화를 실행한 원본 시스템과 경로
Target파일이 반영되는 대상 시스템과 위치
Total Files처리 대상 파일 수
Total Size전체 파일 크기
Progress현재 처리 진행률
Status실행 상태와 완료 여부
Started작업 시작 시간
Completed작업 완료 시간

이를 통해 기존 서버별 로그를 각각 확인하지 않고 동기화 작업별 실행 결과를 비교할 수 있습니다.

실패 이력

동기화 과정에서 추가 확인이 필요한 작업이 발생하면 해당 Run의 상세 정보를 확인해 어느 구간에서 처리가 중단되었는지 확인합니다.

예를 들어 Source 시스템의 연결 상태나 Target 저장 위치, 파일 접근 권한 등을 확인한 뒤 필요한 조치를 완료하고 작업을 다시 실행할 수 있습니다.

text
Run Review
    │
    ▼
View Details
    │
    ├── Source Connection
    │
    ├── Target Connection
    │
    ├── File Path
    │
    └── File Status
            │
            ▼
      Configuration Check
            │
            ▼
           Retry
            │
            ▼
         New Run
            │
            ▼
        Result Verify

실패 이력을 확인할 때는 다음 항목을 함께 살펴볼 수 있습니다.

확인 항목확인 내용후속 작업
Source 연결원본 시스템 연결 상태장비 연결 확인
Target 연결대상 시스템 접근 상태대상 환경 확인
파일 경로Source와 Target 경로경로 조정
접근 권한파일 읽기와 저장 권한권한 설정 확인
파일 상태처리 대상 파일 정보파일 상태 확인
실행 기록Run 상세 정보와 활동 이력환경 조정 후 재실행

문제가 해결된 뒤에는 필요한 작업을 다시 실행하고 새로운 Run을 통해 파일이 대상 위치에 정상적으로 반영되었는지 확인할 수 있습니다.

이 과정을 통해 기존 rsync 작업 분석 → 동기화 경로 이전 → 실행 조건 구성 → 파일 처리 기준 설정 → 관리형 Flow 구성 → 실행 결과 확인 → 실패 이력 관리까지 이어지는 전환 흐름을 구성할 수 있습니다.

기존 서버에서 수행하던 파일 생성과 업무 처리 구조는 유지하면서, 분산된 rsync 경로와 실행 조건을 관리형 Flow로 이전해 동기화 작업의 구성, 실행 결과와 실패 이력을 하나의 관리 흐름으로 운영할 수 있습니다.