Skip to content

Restic UI - Migrate

Restic UI
  • Da man ja seit Restic Version v0.14.0 nun Kompression hat gibt es dafür eine neues Repo Format mit Namen V2. Es gibt dazu auch Migrations Tools, die müssen dann jetzt auch ins Restic UI.

    Das Menü

    cb86e016-a023-4c7a-8bdc-97524ec3b968-image.png

    Teil 1 Migrate check

    Als erstes, wenn der Test erfolgreich war.

    9165e95e-6845-4eac-816d-7f8a9f4521d6-image.png

    Test nicht erfolgreich

    f33d2b78-7895-458f-a310-adad4213fe6a-image.png

    Teil 2 Migrate Update

    Ok, es wird komplizierter, da wird zweimal eine Passwortabfrage erwartet.... Hirn einschalten und grübeln....

    [frank-ms7c92 ~]# restic migrate upgrade_repo_v2 -r /mnt/Backup/Datensicherung_Home_Restic_UI/
    enter password for repository: 
    repository 50a2a753 opened (repository version 1) successfully, password is correct
    checking repository integrity...
    using temporary cache in /tmp/restic-check-cache-3584864968
    enter password for repository: 
    repository 50a2a753 opened (repository version 1) successfully, password is correct
    created new cache in /tmp/restic-check-cache-3584864968
    load indexes
    check all packs
    check snapshots, trees and blobs
    [0:05] 100.00%  13 / 13 snapshots
    no errors were found
    applying migration upgrade_repo_v2...
    migration upgrade_repo_v2: success
    
  • Yeah 🙂

    545cb6ac-d241-453b-8a08-00f6dd81fe1b-image.png

  • Hier die Lösung für das Problem.

    So sieht mein normaler Aufruf aus

    args = [restic,
            'migrate',
            '-r',
            'rest:https://%s:%s@%s:%s/%s' % (backup_data[row].rest_user,
                                             backup_data[row].rest_password,
                                             backup_data[row].rest_domain,
                                             backup_data[row].rest_port,
                                             backup_data[row].rest_folder)]
    
    result = subprocess.run(args,
                            input=pass_word.pw[0],
                            check=True,
                            capture_output=True,
                            text=True)
    

    Dabei wird halt einmal das PW übergeben, wir brauchen das aber zweimal s.o.

    In Restic gibt es folgendes

    export RESTIC_PASSWORD="I9n7G7G0ZpDWA3GOcJbIuwQCGvGUBkU5"
    

    Das müssen wir uns jetzt nutzbar machen.

    args = [restic,
            'migrate',
            'upgrade_repo_v2',
            '-r',
            backup_data[row].repository]
    
    result = subprocess.run(args,
                            env=dict(os.environ, RESTIC_PASSWORD=backup_data[row].password),
                            check=True,
                            capture_output=True,
                            text=True)
    

    Diese Zeile

    env=dict(os.environ, RESTIC_PASSWORD=backup_data[row].password),
    

    setzt die Umgebungsvariable.

    Jetzt muss ich mir mal eben Gedanken über die Sicherheit machen, ob ich das so lasse....

  • Wenn ich das aus VSCodium kopiere sieht das hier schrecklich aus. Da muss ich mich mal nach was anderem umschauen, das sieht ja hier im Forum einfach Sch.... aus.

    Update 30.08.22
    Habe da was in den Settings des Forums gefunden, das sollte jetzt besser passen.

  • Kurz noch was vom Restic Team

  • FrankMF FrankM hat am auf dieses Thema verwiesen