Relayium CLI と SSH で自分のサーバーにファイルをバックアップする
最終更新: 2026-08-05
VPS、自宅サーバー、NAS、ワークステーションなど、すでに ssh でアクセスできるマシンがあれば、同期サービスやアカウントを用意しなくても Relayium CLI でそこへファイルをバックアップできます。転送は既存の SSH 接続の上で行われるため、バイトは直接自分のサーバーへ向かい、Relayium を通ることはありません。
本ガイドではディレクトリの push と pull、再開機能と整合性チェックが何をもたらすか、そして cron でスケジュール実行する方法を扱います。
始める前に
以下はすべて relayium CLI なので、未インストールならまず入れてください。macOS または Linux では、1つのコマンドでビルド済みバイナリが 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 は1つ以上のソースと 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 は完了したファイルごとに1行を表示して終了コード 0 で終わります。素のサーバー相手なら要約が1行出るだけで、それが 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 で戻す
復元は同じコマンドを逆にするだけです。リモートのソースとローカルの宛先ディレクトリを指定します。これがバックアップを復元したり、サーバーの出力をノート PC に同期したりする方法です:
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 -e で crontab に追加)
0 2 * * * relayium push -i ~/.ssh/backup_key ~/documents user@your-server:backups/ >> ~/relayium-backup.log 2>&1
- 再開と組み合わせれば、中断された夜間ジョブは翌晩そのまま続きから進みます。
- いずれかのファイルが整合性チェックに失敗すると、コマンドは非ゼロで終了するので、cron の失敗時メール通知で問題に気づけます。
バックアップが届かないとき
スケジュール実行のバックアップは、その性質上ひっそりと失敗します。誰も端末を見ていないからです。次の4つでほぼ尽きますし、どれも今すぐ実行できるコマンドで判定できます。
症状・確認・対処
- cron ジョブが固まる、またはログがパスワード入力待ちで終わっている。
ssh -i ~/.ssh/backup_key -o BatchMode=yes user@your-server true # Permission denied (publickey).BatchMode=yes は入力を求めずに失敗するので、無言のハングがこの1行に変わります。その鍵の公開鍵をサーバーの ~/.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 に勝つことではなく、同じ再開・整合性保証を備えたまま、クロスネットワーク転送やサーバー間転送もこなせる1つのツールを提供することです。
次のディレクトリを直接の方法でバックアップしましょう。自分の SSH 経由、再開可能、整合性チェック付きで無料です。
CLI を入手