Relayium CLI로 SSH를 통해 자신의 서버에 파일 백업하기
마지막 업데이트: 2026-08-05
VPS, 홈 서버, NAS, 워크스테이션 등 이미 ssh로 접속할 수 있는 서버가 있다면, 동기화 서비스나 계정을 따로 마련하지 않고도 Relayium CLI로 그곳에 파일을 백업할 수 있습니다. 전송은 기존 SSH 연결을 통해 이루어지므로 바이트는 곧장 내 서버로 가고 Relayium을 거치지 않습니다.
이 가이드는 디렉터리를 push하고 pull하는 방법, 재개와 무결성 검사가 주는 이점, 그리고 cron으로 예약 실행하는 방법을 다룹니다.
시작하기 전에
아래는 모두 relayium CLI이므로, 설치하지 않았다면 먼저 설치하세요. macOS나 Linux에서는 명령어 하나로 사전 빌드된 바이너리가 PATH에 등록됩니다:
curl -fsSL https://relayium.com/install.sh | sh
- 직접 파일을 고르고 싶거나 Windows인가요? 릴리스 페이지에서 바이너리를 받으세요 — relayium.com/cli 에 모든 설치 방법이 있습니다(Go가 있으면 go build -o relayium ./cmd/relayium 도 가능).
- relayium --version 으로 설치를 확인할 수 있습니다. 이 단계를 건너뛰면 아래 명령은 “command not found”만 출력합니다.
디렉터리를 서버로 push하기
필요한 것
- 이미 쓰고 있는 SSH 접근 권한. ssh user@your-server true 가 조용히 돌아와야 합니다 — push는 바로 그 연결을 재사용하며 자체 설정은 아무것도 만들지 않습니다.
- 서버에 쓰기 가능한 대상. 대상 경로의 상위 디렉터리가 존재하고 그 SSH 사용자가 쓸 수 있어야 합니다.
- 선택적으로 서버의 relayium. 재개와 파일별 SHA-256을 얻게 해 주는 것이 이것입니다. 없어도 push는 평범한 tar 스트림으로 동작합니다.
- Relayium 계정도, 어느 쪽 데몬도 필요 없습니다. 여기서 Relayium 서버와 통신하는 것은 아무것도 없습니다.
push는 하나 이상의 소스와 scp 형식의 대상을 받습니다. Relayium은 평소 쓰는 키와 설정으로 SSH를 통해 연결한 뒤, 파일을 대상 디렉터리로 스트리밍합니다:
push가 재사용할 SSH 접근을 확인합니다. 조용히 돌아오면 키와 호스트 별칭과 포트가 이미 맞다는 뜻입니다.
ssh user@your-server true어느 프로토콜을 쓰게 될지 확인합니다. 경로가 나오면 네이티브 프로토콜 — 재개와 파일별 SHA-256이고, 아무것도 안 나오면 tar 스트림 대체 방식입니다.
ssh user@your-server command -v relayium디렉터리를 push합니다. 대상은 scp 형식이고, 끝의 슬래시는 “이 디렉터리 안으로”라는 뜻입니다.
relayium push ./photos user@your-server:backups/ssh 설정에 그 호스트가 아직 없다면, 이 명령에 한해 키나 포트를 지정합니다.
relayium push -i ~/.ssh/id_ed25519 -p 2222 ./photos user@your-server:backups/무엇이 도착했는지 확인합니다. push ./photos 는 목적지 아래에 photos/ 를 재현하므로 폴더 이름이 함께 갑니다.
ssh user@your-server ls backups/photos
성공했을 때 보이는 것
네이티브 프로토콜에서는 push가 완료된 파일마다 한 줄을 출력하고 0으로 종료합니다. 아무것도 없는 서버를 상대로는 요약 한 줄만 나오는데, 그것이 tar 대체 방식이며 역시 성공입니다.
relayium push ./photos user@your-server:backups/
photos/IMG_0413.jpg (2314518 bytes)
photos/IMG_0414.jpg (1998233 bytes)
# against a server with no relayium installed, one summary line instead:
sent 2 file(s) (zero-dependency mode)- 기존 ~/.ssh/config를 그대로 재사용하므로, 이미 설정해 둔 호스트 별칭, 키, 포트가 그대로 작동합니다.
- 서버에 relayium이 설치되어 있으면 네이티브 프로토콜을 사용합니다: 파일별 재개와 모든 파일에 대한 SHA-256 검사입니다.
- 설치되어 있지 않으면 tar 스트림을 원격으로 파이프하는 방식으로 대체되어, relayium이 없는 순수한 서버에서도 동작합니다.
파일을 pull로 되돌려받기
복원은 같은 명령을 반대로 실행하는 것과 같습니다. 원격 소스와 로컬 대상 디렉터리를 지정하세요. 백업을 복구하거나 서버의 출력을 노트북으로 동기화할 때 이렇게 합니다:
relayium pull user@your-server:backups/ ./restore
- push와 달리 pull은 항상 원격지에 relayium이 이미 설치되어 있어야 합니다 — tar 대체 방식이 없으므로, 설치되어 있지 않다면 먼저 그곳에 설치하세요.
재개와 무결성이 기본으로 내장되어 있다
백업은 대체로 크고, 네트워크는 대체로 끊깁니다. 양쪽에 relayium이 있으면 중단된 전송은 다음 실행 시 전체를 다시 보내는 대신 멈춘 지점에서 재개되고, 각 파일은 SHA-256 해시로 종단간 검증됩니다 — 서버에 도착하는 것은 보낸 것과 바이트 단위로 동일합니다.
부분 파일을 재개하는 대신 깔끔하게 전체를 다시 보내고 싶다면 --no-resume을 넘기세요.
- 재개에는 원격에 relayium이 필요합니다(네이티브 프로토콜); tar 대체 방식은 항상 전체를 전송합니다.
- SHA-256 검사는 자동으로 실행되며, 불일치가 있으면 보고되고 해당 파일은 실패로 표시됩니다.
cron으로 예약 실행하기
push는 SSH 키를 사용하는 단일 비대화형 명령이므로, 그대로 cron에 넣어 반복 백업으로 쓸 수 있습니다. 암호 없는 키(또는 agent)를 지정하고, 출력을 로그로 남겨 실패를 확인할 수 있게 하세요:
# 매일 밤 2시에 백업. crontab에 추가하세요(crontab -e)
0 2 * * * relayium push -i ~/.ssh/backup_key ~/documents user@your-server:backups/ >> ~/relayium-backup.log 2>&1
- 재개 기능과 결합하면, 중단된 야간 작업은 다음 날 밤 그대로 이어서 진행됩니다.
- 무결성 검사에 실패한 파일이 하나라도 있으면 명령이 0이 아닌 상태로 종료되므로, cron의 실패 시 메일 알림으로 문제를 발견할 수 있습니다.
백업이 도착하지 않을 때
예약된 백업은 본질적으로 조용히 실패합니다. 아무도 터미널을 보고 있지 않기 때문입니다. 아래 네 가지가 거의 전부를 덮고, 각각 지금 바로 실행할 수 있는 명령으로 판정됩니다.
증상, 확인, 해결
- cron 작업이 멈춰 있거나 로그가 비밀번호 입력 프롬프트에서 끝납니다.
ssh -i ~/.ssh/backup_key -o BatchMode=yes user@your-server true # Permission denied (publickey).BatchMode=yes 는 입력을 요구하지 않고 실패하므로, 조용한 멈춤이 이 한 줄로 바뀝니다. 그 키의 공개키를 서버의 ~/.ssh/authorized_keys 에 추가하거나, 에이전트가 이미 들고 있는 키를 작업에 지정하세요.
- crontab 줄은 실행되는데 로그가 계속 비어 있습니다.
command -v relayium # /usr/local/bin/relayiumcron은 최소한의 PATH로 실행되며 대개 /usr/local/bin이 없습니다. 그래서 relayium이 시작되기도 전에 그 줄이 실패합니다. 방금 확인한 절대 경로를 crontab 항목에 적고, >> ~/relayium-backup.log 2>&1 리다이렉트는 남겨 두어 다음 실패가 보이게 하세요.
- 중단된 전송이 다음 실행에서 처음부터 다시 시작합니다.
ssh user@your-server command -v relayium # (아무것도 출력되지 않음)재개는 네이티브 프로토콜의 기능이고, 원격에 relayium이 없다는 것은 tar 스트림 대체 방식이라는 뜻이며 그쪽은 늘 파일 전체를 다시 보냅니다. 서버에 설치하면 파일별 재개를 얻습니다. 아울러 재개를 일부러 끄는 --no-resume 을 넘기고 있지는 않은지도 확인하세요.
- “N file(s) failed integrity check”가 나오고 0이 아닌 코드로 종료됩니다.
relayium push ./photos user@your-server:backups/ # 1 file(s) failed integrity check: [photos/IMG_0413.jpg] echo $? # 1도착 시 계산한 SHA-256이 보낸 값과 달랐으므로 서버의 그 파일은 믿을 수 없습니다. push를 다시 실행하고 종료 코드를 한 번 더 확인하세요. 같은 파일이 계속 실패한다면 그 파일만 따로 push해서 원본 문제인지 회선 문제인지를 갈라내세요.
자주 묻는 질문
파일이 Relayium의 서버를 거치나요?
아니요. push와 pull은 전적으로 내 SSH 연결을 통해 실행됩니다. Relayium의 서버는 전혀 관여하지 않으며 계정도 필요 없습니다.
서버에 relayium이 설치되어 있어야 하나요?
방향에 따라 다릅니다. push의 경우 선택 사항입니다. 원격에 relayium이 있으면 네이티브 프로토콜을 사용할 수 있습니다 — 재개 가능한 전송과 파일별 SHA-256 검사입니다. 없으면 push는 SSH를 통한 tar 스트림으로 대체되며, 여전히 동작하지만 각 파일을 항상 전체 전송합니다. pull의 경우 필수입니다. pull은 항상 원격지에 relayium이 있어야 하며(tar 대체 방식 없음), 먼저 원격지에 설치해 두세요.
어떤 SSH 키와 포트를 사용할지 어떻게 정하나요?
ssh와 마찬가지로 기존 ~/.ssh/config를 읽으므로, 호스트 별칭, 키, 포트가 자동으로 반영됩니다. 명령마다 -i로 신원 파일을, -p로 포트를 지정해 재정의할 수도 있습니다.
이게 rsync보다 빠른가요?
자신의 서버로 push하는 경우라면 SSH를 통한 rsync와 비슷한 수준입니다. 목표는 rsync를 이기는 것이 아니라, 같은 재개와 무결성 보장을 갖춘 채로 크로스 네트워크 전송과 서버 간 전송까지 함께 해내는 하나의 도구를 제공하는 것입니다.
다음 디렉터리를 직접적인 방식으로 백업하세요 — 내 SSH를 통해, 재개 가능하고, 무결성 검사가 되며, 무료입니다.
CLI 받기