Relayium

cron 작업으로 암호화된 서버 백업 자동화하기

마지막 업데이트: 2026-07-09

직접 기억해서 실행해야 하는 백업은 결국 실행되지 않습니다. cron은 기억해 주며, Relayium CLI는 바로 그 목적을 위해 만들어졌습니다: 디렉터리를 다른 머신으로 복사(또는 미러링)하고, 모든 파일을 검증하며, 네트워크가 끊기면 중단된 지점부터 이어가는 단일 비대화형 명령입니다.

이 가이드는 cron에서 relayium push와 증분 방식의 relayium sync를 예약하는 방법, 둘 다에 사용할 수 있는 두 가지 전송 방식, 그리고 그대로 복사해 쓸 수 있는 crontab 줄을 다룹니다.

push와 sync: 전체 복사냐 증분 미러링이냐

push와 sync는 둘 다 디렉터리를 다른 머신으로 옮기고, 둘 다 반복 실행해도 안전하지만, 해결하는 백업 문제는 조금 다릅니다.

push는 실행할 때마다 SSH 또는 daemon-direct로 매번 전체 복사본을 보냅니다 — 단순하며, relayium이 설치되지 않은 순수한 서버에도 tar 대체 방식으로 동작합니다. 반면 sync는 대상을 소스의 증분 단방향 미러로 유지합니다. 변경된 파일만 다시 전송하므로, 큰 디렉터리라도 첫 실행 이후의 야간 동기화는 빠릅니다. sync는 항상 양쪽 모두에서 relayium의 네이티브 프로토콜이 필요합니다 — tar 대체 방식이 없습니다.

두 가지 전송 방식: SSH 또는 daemon-direct

두 명령 모두 SSH 대상(scp 형식, 당신의 ~/.ssh/config 사용)을 지정할 수도 있고, 상대 머신에서 relayium serve가 실행 중이라면 SSH 없이 daemon-direct 프로토콜로 곧장 연결할 수도 있습니다.

# SSH destination — uses your existing SSH keys and config
relayium push ./data user@backup-server:/srv/backups/

# daemon-direct — the destination runs "relayium serve", no SSH required
relayium push ./data relayium://backup-server:9031

cron으로 예약 실행하기

push와 sync는 둘 다 단일 비대화형 명령이므로, 그대로 crontab에 넣을 수 있습니다. 암호 없는 키(또는 agent)를 지정하고, 출력을 로그로 남겨 실패를 확인할 수 있게 하세요:

# full copy every night at 2am — add to your crontab (crontab -e)
0 2 * * * relayium push -i ~/.ssh/backup_key ~/documents user@backup-server:/srv/backups/ >> ~/relayium-backup.log 2>&1

# incremental mirror every 15 minutes instead
*/15 * * * * relayium sync -i ~/.ssh/backup_key ~/documents user@backup-server:/srv/backups/ >> ~/relayium-sync.log 2>&1

삭제 미러링과 실시간 동기화

기본적으로 sync는 대상 쪽에서 파일을 추가하거나 갱신하기만 합니다. --delete를 추가하면 진짜 미러가 되어 소스에 더 이상 없는 파일도 삭제합니다 — 수신 측이 명시적으로 serve --allow-delete로 대기 중이어야 하며, 그렇지 않으면 삭제는 조용히 건너뛰어지고 결과에 거부됨으로 보고됩니다. 소스 디렉터리가 파일을 하나도 찾지 못하면 sync는 --delete 실행 자체를 거부하므로, 소스 경로 오타로 대상이 지워지는 일은 없습니다.

cron의 다음 실행 시각을 기다리고 싶지 않다면, --watch를 사용해 relayium sync를 계속 실행 상태로 두면 소스 아래의 파일이 변경된 직후 자동으로 다시 동기화됩니다 — 예약된 폴링을 대신하는 가벼운 방법입니다.

자주 묻는 질문

백업 서버에 relayium이 설치되어 있어야 하나요?

명령에 따라 다릅니다. push는 어느 쪽이든 동작합니다: relayium이 설치되어 있으면 네이티브 프로토콜(재개 + 파일별 SHA-256 검사)을 사용하고, 없으면 push는 SSH를 통한 일반 tar 스트림으로 대체되어 순수한 서버에서도 동작합니다. sync는 항상 원격지에 relayium의 네이티브 프로토콜이 필요합니다 — sync에는 tar 대체 방식이 없으므로 먼저 그곳에 설치하세요.

백업이 암호화되고 검증되나요?

네. 모든 파일은 종단간 SHA-256 해시로 검사되며, SSH나 daemon-direct로 푸시할 때 바이트는 이미 해당 연결 자체의 암호화로 보호됩니다 — 추가로 설정할 것이 없습니다.

cron 작업이 중간에 중단되면 어떻게 되나요?

양쪽에 relayium이 있으면, 다음 예약된 실행이 전체를 다시 보내는 대신 부분 파일을 재개합니다. 깔끔하게 전체를 다시 보내고 싶다면 --no-resume을 넘기세요.

--delete가 실수로 대상을 지워버릴 수 있나요?

소스 디렉터리에 파일이 하나도 없으면 sync는 --delete 실행 자체를 거부합니다. 또한 삭제가 실제로 적용되려면 수신 측이 serve --allow-delete로 시작되어 있어야 합니다 — 그렇지 않으면 건너뛰어지고 결과로 보고됩니다.

계정이 필요한가요, 비용이 드나요?

아니요. CLI는 무료이며 push, pull, sync 모두 계정이 필요 없습니다. 전송은 당신 자신의 SSH 연결이나 직접적인 daemon 연결을 통해 이루어지며, Relayium의 서버를 거치지 않습니다.

기억할 필요 없는 일정에 백업을 올려두세요 — 암호화되고, 재개 가능하며, 무료입니다.

CLI 받기

계속 읽기