"보그가 서버에서 작업 중인가요?"

"보그가 서버에서 작업 중인가요?"

내 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작업을 수행하기 위한 몇 가지 옵션이 제공됩니다. 최상위 수준에는 세 가지 옵션이 있다고 말하고 싶습니다.반면관련된 유일한 호스트는 MacMini와 RPi입니다. 예를 들어, "시스템"에 NAS 또는 이동식 미디어가 포함된 경우 옵션 수가 늘어납니다. 그러나 2개 호스트 시스템의 경우 네 가지 옵션은 다음과 같습니다.

  1. RPi는고객, Mac Mini용섬기는 사람
  2. 맥 미니고객, RPi는섬기는 사람
  3. 4. 다음 rsync으로 설정서비스/데몬- Mac 또는 RPi에서.

이것공식 문서에서는 다음 사항을 설명합니다.프로세스와 역할나보다 훨씬 나아요. 이 기사 전체를 읽고 먼저 이러한 기본적인 결정을 내려야 합니다. 여기에서 고려해야 할 여러 가지 요소가 있습니다. 이러한 요소에 따라 구현이 요구 사항을 얼마나 잘 충족하는지가 결정됩니다. 예를 들어, 연중무휴로 실행되는 호스트 하나와 간헐적으로 실행되는 다른 호스트가 있는 경우간헐적으로, 저것가능한서버 역할을 수행하기 위해 24x7 시스템을 사용하는 것을 가리킵니다. 이것도 다음에 따라 달라집니다.스케줄러cron예를 들어 , systemdlaunchctl(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를 클라이언트에 전달하고 서버의 경로를 전달해 보세요.

관련 정보