Raspberry PiのデータをMac Miniにバックアップするために自動バックアップシステムを設定しようとしています。ただし、RPiでリモートMac Miniストレージホストへのborg initまたはborg create呼び出しは、Mac Miniで実行されているborgサーバーに到達できないようです。
Mac Miniの場合:
% sudo borg serve --debug --restrict-to-path /Users/borg/BorgRepos/RetroPie
$LOG DEBUG borg.logger Remote: using builtin fallback logging configuration
$LOG DEBUG borg.archiver Remote: 33 self tests completed in 0.12 seconds
ラズベリーパイから:
$ sudo borg create --debug --stats borg@octolen:/Users/borg/BorgRepos/RetroPie2::Friday2 RetroPie
using builtin fallback logging configuration
35 self tests completed in 0.59 seconds
SSH command line: ['ssh', 'borg@octolen', 'borg', 'serve', '--umask=077', '--debug']
Password:
Remote: zsh:1: command not found: borg
Connection closed by remote host. Is borg working on the server?
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/borg/archiver.py", line 4455, in main
exit_code = archiver.run(args)
File "/usr/lib/python3/dist-packages/borg/archiver.py", line 4387, in run
return set_ec(func(args))
File "/usr/lib/python3/dist-packages/borg/archiver.py", line 134, in wrapper
make_parent_dirs=make_parent_dirs, args=args)
File "/usr/lib/python3/dist-packages/borg/remote.py", line 577, in __init__
raise ConnectionClosedWithHint('Is borg working on the server?') from None
borg.remote.ConnectionClosedWithHint: Connection closed by remote host. Is borg working on the server?
Platform: Linux retropie2 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l
Linux: debian 10.13
Borg: 1.1.9 Python: CPython 3.7.3
PID: 28539 CWD: /home/pi
sys.argv: ['/usr/bin/borg', 'create', '--debug', '--stats', 'borg@octolen:/Users/borg/BorgRepos/RetroPie2::Friday2', 'RetroPie']
SSH_ORIGINAL_COMMAND: None
Macファイアウォールの着信接続を許可するアプリケーションのリストに/usr/bin/borgを追加しました。私がここで何を見逃しているのでしょうか?
答え1
あなたが使用することを決めた場合、borg
私は何も提供できません。 SDカード全体の「イメージバックアップ」ではなくRPiの特定のファイルのみをバックアップしたい場合は、これを考慮することをお勧めしますrsync
。
理解することが最優先事項です何rsync
ですか。中トップレベル、rsync
指定された場所にあるファイルを更新します。目的地指定されたファイルと一致源泉。それ一方通行手術ソース==>目的地)はrsync
更新されません源泉ファイルがある目的地- 最新バージョンといっても同じです。実際、誤ってターゲットファイルを「更新」するのはとても簡単です。新しいファイルを古いファイルで上書きすることです!
rsync
タスクを実行するためのいくつかのオプションがあります。トップレベルには3つのオプションがあると言いたいです。一方関連する唯一のホストはMacMiniとRPiです。たとえば、「システム」にNASまたはリムーバブルメディアが含まれている場合、オプションの数が増えます。ただし、2つのホストシステムの場合、4つのオプションは次のとおりです。
- RPiは顧客、Mac Mini用仕える人
- Mac Mini顧客、RPiは仕える人
- 4. 次
rsync
の設定サービス/デーモン- MacまたはRPiで。
これ公式文書では、次の事項について説明します。プロセスと役割私よりはるかに良いです。この記事全体を読んで、まずこれらの基本的な決定を下す必要があります。ここで考慮すべきいくつかの要因があります。これらの要因によって、実装が要件をどれだけうまく満たすかが決まります。たとえば、年中無休で実行されるホストの 1 つと断続的に実行される別のホストがある場合断続的に、それ可能サーバーの役割を果たすために24x7システムを使用することを指します。これも次のように変わります。スケジューラcron
たとえば、systemd
およびlaunchctl
(Macのみ)バックアップ/同期を開始するために使用されます。はい、少し複雑になるかもしれませんが、自由に選択し、より良いアイデアがあれば変更することもできます。
ここで止まります。rsync
これをソリューションの一部として使用することを選択したかどうかについて、より詳細な質問があるかもしれません。まだ言及していません。イメージのバックアップRPiに特化しているソリューションです。RPi SEの適用しかし、それはおそらくあなたの状況に合ったより良いツール。どちらの場合も、先に進む方法を選択した後は、具体的なフォローアップの質問を自由に尋ねてください。
答え2
クレジット ユーザー Moocha と Justin473説明する:
アーカイブを作成するときにリモートボグへのフルパスを明示的に指定すると機能しますか?つまり、
sudo borg create --debug --stats --remote-path /usr/bin/borg borg@octolen:/Users/borg/BorgRepos/RetroPie2::Friday2 RetroPie
/usr/bin/borg はリモート Mac Mini に表示される Borg バイナリへのパスです。つまり、Mac Mini では octolen という名前の borg というユーザーがアクセスできるようになります。
クライアントが接続しているとき、borgがパスにないようです。 ssh は対話型シェルを起動せず、環境は対話型シェルから取得する環境とは異なります。
ssh はユーザーの構成ファイルをインポートしないため、PATH は /usr/bin:/bin などのシステムデフォルトです。 --remote-path をクライアントに渡し、サーバーへのパスを渡します。