Einrichtung Backup auf Hetzner Cloud mittels rsync

Hallo zusammen,

ich wollte heute das Backup meines TrueNAS Version 25.20.0.1 in eine Storage-Box der Hetzner Cloud einrichten.

Ich habe dazu folgendes eingerichtet:

  1. Backup Credentials: SSH Keypairs
  2. SSH Connection

Ich habe es hinbekommen, dass ich mittels ssh auf dem Port 23 mit dem User truenas_admin von der Shell aus eine SSH-Verbindung zur Storage-Box aufbauen kann - und zwar ohne Passwort-Eingabe.

Ich konnte ebenso einen manuellen rsync auf der Kommandozeile absetzen. Das hat ebenfalls funktioniert.

Allerdings schaffe ich es nicht, einen sync-Task anzulegen.

Dieser sieht wie folgt aus:

Wenn ich hier auf “Save” klicke, erhalte ich folgende Fehlermeldung:

“Connection to Remote Host was successful but failed to verify Remote Path. Process exited with non-zero exit status 8”

Wenn ich den Haken bei “Validate Remote Path” entferne, erhalte ich folgende Fehlermeldung:

Error Name: EINVAL
Error Code: 22
Reason: cannot access local variable 'known_hosts' where it is not associated with a value
Error Class: UnboundLocalError
Trace: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py", line 360, in process_method_call
    result = await method.call(app, id_, params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py", line 57, in call
    result = await self.middleware.call_with_audit(self.name, self.serviceobj, methodobj, params, app,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 954, in call_with_audit
    result = await self._call(method, serviceobj, methodobj, params, app=app,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 771, in _call
    return await methodobj(*prepared_call.args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/service/crud_service.py", line 176, in create
    return await self.middleware._call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 771, in _call
    return await methodobj(*prepared_call.args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/service/crud_service.py", line 214, in nf
    rv = await func(*args, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/api/base/decorator.py", line 108, in wrapped
    result = await func(*args)
             ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/rsync.py", line 370, in do_create
    verrors, data = await self.validate_rsync_task(data, 'rsync_task_create')
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/rsync.py", line 353, in validate_rsync_task
    if not known_hosts.match(connect_kwargs['host'], '', None)[0]:
           ^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'known_hosts' where it is not associated with a value

Hat jemand eine Idee, wo hier mein Fehler liegt.

Viele Grüße,

1 Like

Ich habe auf 25.10.0.1 exakt das selbe Verhalten, aber keine Ahnung, woher es kommt.

Cloud Sync Jobs via WebDAV scheinen großteils zu funktionieren, einer davon schlägt aber immer wieder fehl.

Ich teste gerade Cloud Sync via SFTP.

Siehe hier: