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

  • ResticUI with PyWebIO - Repo

    PyWebIO
    1
    0 Stimmen
    1 Beiträge
    83 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    3 Beiträge
    165 Aufrufe
    FrankMF

    Hallo @berthold, du bist mein einziger Star 🙂 Ok, darum geht es mir ja nicht, wie Du weißt mache ich das hauptsächlich für mich und meine Backups klappen damit sehr gut. Ist also produktiv einsetzbar.

    Wie Du gemerkt hast, gibt es Zeiten da mache ich ganz viel und dann wieder Zeiten da passiert nix. Das ist bei mir normal, ich muss da "Bock" drauf haben. Habe ich viel Stress auf der Arbeit, passiert Abends eher sehr wenig..

    Ich hoffe das ich mittlerweile alle Fehler gefunden habe, die Grundfunktionen sind alle funktional. Mittlerweile kann man die JSON Datei mit den Daten der Backups auf Wunsch auch verschlüsseln 🙂

    Ich habe noch eine ganze Reihe an Notizen, was ich gerne noch machen möchte. Wichtig ist mir aber im Moment, das ich alle Fehler finde und das so wie es jetzt ist, einwandfrei läuft.

    Darum, wenn es jemand nutzt, bitte gebt Feedback. Egal ob positiv oder negativ. Ich freue mich persönlich natürlich mehr über positives Feedback 🙂

  • Restic UI - auf PyQt6 umbauen

    Restic UI
    5
    0 Stimmen
    5 Beiträge
    184 Aufrufe
    FrankMF

    Ich hatte im Python Forum mal um Hilfe gebeten und man hat mir einen Hinweis gegeben, dem ich hier mal nachgehe.

    Der Forenuser meinte, das es ihn wundern würde, wenn ich von QtCore importieren müsste, also

    self.addDockWidget(QtCore.Qt.DockWidgetArea.RightDockWidgetArea, self.items)

    Das habe ich mal ausprobiert. Wenn ich von QtCore Qt importiere, kann ich das QtCore weglassen.

    from PyQt6.QtCore import QSettings, Qt

    dann geht auch

    self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.items)

    Es sieht so aus, das ich mich in dieses Thema noch ein wenig einarbeiten muss 🙂

  • 0 Stimmen
    2 Beiträge
    207 Aufrufe
    FrankMF

    Der Autor hat meine Anpassungen um ein paar Änderungen erweitert und in sein Repo eingepflegt. Der QtWaitingSpinenr ist jetzt auch 3.10 kompatibel 🤓

    1b268980-92ca-42a4-89a0-a6e4b7ab9378-grafik.png

  • 0 Stimmen
    1 Beiträge
    129 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    2 Beiträge
    179 Aufrufe
    FrankMF

    Die REST Unterstützung ist komplett 🤓

    Link Preview Image Not Found

    favicon

    (gitlab.com)

    Ich denke, ein wenig Dokumentation wäre noch gut ☺

  • Restic UI - Released

    Restic UI
    1
    0 Stimmen
    1 Beiträge
    141 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    168 Aufrufe
    Niemand hat geantwortet