Skip to content

Restic - forget --keep-last 3 --prune

Restic
  • Die Restic Parameter

    • -l, --keep-last n keep the last n snapshots
    • --prune automatically run the 'prune' command if snapshots have been removed

    The "prune" command checks the repository and removes data that is not
    referenced and therefore not needed any more.

    Ordner Größe vorher

    root@debian:~# du -hs /media/1TB/Restic/Home_Debian/
    43G	/media/1TB/Restic/Home_Debian/
    

    Script

    restic --password-file /root/passwd -r /media/1TB/Restic/Home_Debian forget --keep-last 3 --prune
    

    Ausgabe

    root@debian:~# ./backup.sh
    open repository
    repository 8b5bd7f8 opened successfully, password is correct
    found 2 old cache directories in /root/.cache/restic, pass --cleanup-cache to remove them
    lock repository
    load index files
    using parent snapshot 61d72a7d
    start scan on [/home/frank]
    start backup on [/home/frank]
    scan finished in 0.800s: 13395 files, 40.221 GiB
    
    Files:           0 new,     6 changed, 13389 unmodified
    Dirs:            0 new,     1 changed,     0 unmodified
    Data Blobs:      9 new
    Tree Blobs:      2 new
    Added to the repo: 6.570 MiB
    
    processed 13395 files, 40.221 GiB in 0:01
    snapshot 890c2add saved
    repository 8b5bd7f8 opened successfully, password is correct
    found 2 old cache directories in /root/.cache/restic, pass --cleanup-cache to remove them
    Applying Policy: keep the last 3 snapshots snapshots
    snapshots for (host [debian], paths [/home/frank]):
    
    keep 3 snapshots:
    ID        Time                 Host        Tags        Reasons        Paths
    ---------------------------------------------------------------------------------
    80aa40ab  2020-01-01 21:47:29  debian                  last snapshot  /home/frank
    61d72a7d  2020-01-01 22:24:12  debian                  last snapshot  /home/frank
    890c2add  2020-01-01 22:24:45  debian                  last snapshot  /home/frank
    ---------------------------------------------------------------------------------
    3 snapshots
    
    remove 82 snapshots:
    ID        Time                 Host        Tags        Paths
    ------------------------------------------------------------------
    547bbf63  2019-07-13 13:52:41  debian                  /home/frank
    8c54e557  2019-07-14 21:00:04  debian                  /home/frank
    59f2e7cd  2019-07-14 21:17:16  debian                  /home/frank
    152b78dc  2019-07-15 16:30:01  debian                  /home/frank
    30423779  2019-07-17 16:30:01  debian                  /home/frank
    3c1dd11e  2019-07-18 16:30:01  debian                  /home/frank
    3c0b0b9f  2019-07-23 16:30:01  debian                  /home/frank
    78c9babb  2019-07-24 16:30:01  debian                  /home/frank
    214fce77  2019-07-25 16:30:01  debian                  /home/frank
    f0413c59  2019-07-29 16:30:01  debian                  /home/frank
    05d005ba  2019-08-01 16:30:01  debian                  /home/frank
    fdda7d9a  2019-08-05 16:30:01  debian                  /home/frank
    d19ab972  2019-08-06 16:30:01  debian                  /home/frank
    ea0070d1  2019-08-07 16:30:01  debian                  /home/frank
    bc4e7164  2019-08-08 16:30:01  debian                  /home/frank
    55257134  2019-08-12 16:30:01  debian                  /home/frank
    6fad57b4  2019-08-13 16:30:01  debian                  /home/frank
    4e7d91c2  2019-08-14 16:30:01  debian                  /home/frank
    383eb63c  2019-08-20 16:30:01  debian                  /home/frank
    7bed05ed  2019-08-21 16:30:01  debian                  /home/frank
    d7d62461  2019-08-22 16:30:01  debian                  /home/frank
    341729ae  2019-08-26 16:30:01  debian                  /home/frank
    10a17d9e  2019-08-27 16:30:01  debian                  /home/frank
    08d0c934  2019-08-28 16:30:01  debian                  /home/frank
    39fef49d  2019-08-29 16:30:02  debian                  /home/frank
    6a5a6c6a  2019-09-02 16:30:02  debian                  /home/frank
    892a73e9  2019-09-03 16:30:01  debian                  /home/frank
    1621d218  2019-09-04 16:30:01  debian                  /home/frank
    0f13ec94  2019-09-05 16:30:01  debian                  /home/frank
    2ab03ea2  2019-09-09 16:30:02  debian                  /home/frank
    6e6bb1d2  2019-09-10 16:30:01  debian                  /home/frank
    d0df744f  2019-09-12 16:30:01  debian                  /home/frank
    66d34a4c  2019-09-16 16:30:01  debian                  /home/frank
    513e4090  2019-09-17 16:30:01  debian                  /home/frank
    4675ef07  2019-09-18 16:30:01  debian                  /home/frank
    75e5290e  2019-09-19 16:30:01  debian                  /home/frank
    0a619aca  2019-09-23 16:30:01  debian                  /home/frank
    834e50ad  2019-09-24 16:30:01  debian                  /home/frank
    5899f401  2019-09-25 16:30:01  debian                  /home/frank
    5ed350cf  2019-09-26 16:30:01  debian                  /home/frank
    e0848166  2019-09-30 16:30:01  debian                  /home/frank
    148a19f8  2019-10-01 16:30:01  debian                  /home/frank
    c7aa33cd  2019-10-02 16:30:01  debian                  /home/frank
    557ee95e  2019-10-03 16:30:02  debian                  /home/frank
    d1f9ffe3  2019-10-07 16:30:01  debian                  /home/frank
    d9464528  2019-10-08 16:30:01  debian                  /home/frank
    b7ec22d4  2019-10-14 16:30:01  debian                  /home/frank
    1cebe876  2019-10-15 16:30:01  debian                  /home/frank
    787f6f23  2019-10-16 16:30:01  debian                  /home/frank
    7aeff7b5  2019-10-17 16:30:01  debian                  /home/frank
    8aeff344  2019-10-21 16:30:01  debian                  /home/frank
    01c9695e  2019-10-22 16:30:01  debian                  /home/frank
    1c18211b  2019-10-23 16:30:01  debian                  /home/frank
    5ec81cd1  2019-10-28 16:30:01  debian                  /home/frank
    d19355f6  2019-10-29 16:30:01  debian                  /home/frank
    9c53dc9e  2019-10-30 16:30:02  debian                  /home/frank
    9238a4f6  2019-10-31 16:30:01  debian                  /home/frank
    47b567c7  2019-11-07 22:17:23  debian                  /home/frank
    a1c5ab4a  2019-11-18 16:30:01  debian                  /home/frank
    c566f59e  2019-11-19 16:30:01  debian                  /home/frank
    a83b4a1a  2019-11-20 16:30:02  debian                  /home/frank
    84028c08  2019-11-21 16:30:01  debian                  /home/frank
    6c92a4a3  2019-11-25 16:30:01  debian                  /home/frank
    3a1df8ea  2019-11-28 16:30:01  debian                  /home/frank
    168e08d9  2019-12-02 16:30:01  debian                  /home/frank
    502aa14f  2019-12-03 16:30:01  debian                  /home/frank
    f2d3bf69  2019-12-04 16:30:01  debian                  /home/frank
    c1ef8f2e  2019-12-05 16:30:01  debian                  /home/frank
    c4128591  2019-12-09 16:30:01  debian                  /home/frank
    360dbcf2  2019-12-10 16:30:01  debian                  /home/frank
    ff0369fa  2019-12-11 16:30:01  debian                  /home/frank
    537df8a1  2019-12-12 16:30:01  debian                  /home/frank
    4886b46e  2019-12-16 16:30:01  debian                  /home/frank
    8f6530b2  2019-12-17 16:30:01  debian                  /home/frank
    c45d800b  2019-12-18 16:30:01  debian                  /home/frank
    f193bf67  2019-12-19 16:30:01  debian                  /home/frank
    e60a0ee7  2019-12-23 16:30:01  debian                  /home/frank
    a1a361c5  2019-12-24 16:30:01  debian                  /home/frank
    5b72c58a  2019-12-25 16:30:01  debian                  /home/frank
    e009d9e0  2019-12-26 16:30:01  debian                  /home/frank
    c2c01520  2019-12-31 16:30:01  debian                  /home/frank
    9c507ee2  2020-01-01 16:30:01  debian                  /home/frank
    ------------------------------------------------------------------
    82 snapshots
    
    82 snapshots have been removed, running prune
    counting files in repo
    building new index for repo
    [1:10] 100.00%  9379 / 9379 packs
    repository contains 9379 packs (77094 blobs) with 42.730 GiB
    processed 77094 blobs: 0 duplicate blobs, 0 B duplicate
    load all snapshots
    find data that is still in use for 3 snapshots
    [0:00] 100.00%  3 / 3 snapshots
    found 28102 of 77094 data blobs still in use, removing 48992 blobs
    will remove 0 invalid files
    will delete 3080 packs and rewrite 1674 packs, this frees 17.605 GiB
    [2:16] 100.00%  1674 / 1674 packs rewritten
    counting files in repo
    [0:00] 100.00%  5121 / 5121 packs
    finding old index files
    saved new indexes as [0b4a656c 3d642b8d]
    remove 86 old index files
    [0:01] 100.00%  4754 / 4754 packs deleted
    done
    

    Ordnergröße danach

    root@debian:~# du -hs /media/1TB/Restic/Home_Debian/
    26G	/media/1TB/Restic/Home_Debian/
    

    wird noch überarbeitet, nur mal kurz hier reingeschmissen

  • Ich habe mich damit noch ein wenig beschäftigt, die letzten drei zu behalten, ist nicht so optimal. Da es viele Optionen bei dem Befehl gibt, hier ein Ausschnitt

    Flags:
      -l, --keep-last n            keep the last n snapshots
      -H, --keep-hourly n          keep the last n hourly snapshots
      -d, --keep-daily n           keep the last n daily snapshots
      -w, --keep-weekly n          keep the last n weekly snapshots
      -m, --keep-monthly n         keep the last n monthly snapshots
      -y, --keep-yearly n          keep the last n yearly snapshots
    

    habe ich das ein wenig so angepasst, das ich denke es passt für mich.

    restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ forget --keep-last 3 --keep-monthly 3 --prune
    

    Damit behalte ich auch die jeweils eines pro Monat. Und die letzten drei. Das sieht dann so aus.

    root@debian:~# ./backup2.sh 
    repository 2f3f6147 opened successfully, password is correct
    
    Files:          38 new,   100 changed, 13268 unmodified
    Dirs:            0 new,     1 changed,     0 unmodified
    Added to the repo: 10.166 GiB
    
    processed 13406 files, 50.324 GiB in 3:24
    snapshot 849f614c saved
    repository 2f3f6147 opened successfully, password is correct
    Applying Policy: keep the last 3 snapshots, 3 monthly snapshots
    snapshots for (host [debian], paths [/home/frank]):
    
    keep 5 snapshots:
    ID        Time                 Host        Tags        Reasons           Paths
    ------------------------------------------------------------------------------------
    a7251cfd  2019-11-28 17:00:01  debian                  monthly snapshot  /home/frank
    283d4027  2019-12-31 17:00:01  debian                  monthly snapshot  /home/frank
    ae2b96ec  2020-01-01 21:47:46  debian                  last snapshot     /home/frank
    079e00a6  2020-01-02 17:00:01  debian                  last snapshot     /home/frank
    849f614c  2020-01-03 21:08:45  debian                  last snapshot     /home/frank
                                                           monthly snapshot
    ------------------------------------------------------------------------------------
    5 snapshots
    
    remove 26 snapshots:
    ID        Time                 Host        Tags        Paths
    ------------------------------------------------------------------
    896f16c2  2019-11-07 22:23:40  debian                  /home/frank
    b21bcf6d  2019-11-11 17:00:01  debian                  /home/frank
    f89248fb  2019-11-12 17:00:01  debian                  /home/frank
    123ab546  2019-11-13 17:00:01  debian                  /home/frank
    b82d87d0  2019-11-18 17:00:01  debian                  /home/frank
    040b0ab7  2019-11-19 17:00:01  debian                  /home/frank
    7221d8ef  2019-11-20 17:00:01  debian                  /home/frank
    84132a25  2019-11-21 17:00:01  debian                  /home/frank
    b558a52c  2019-11-25 17:00:01  debian                  /home/frank
    e5cc0c3e  2019-12-02 17:00:01  debian                  /home/frank
    22423fa5  2019-12-03 17:00:01  debian                  /home/frank
    39df1ab9  2019-12-04 17:00:01  debian                  /home/frank
    98843457  2019-12-05 17:00:01  debian                  /home/frank
    b0cdd4b6  2019-12-09 17:00:01  debian                  /home/frank
    828414f9  2019-12-10 17:00:01  debian                  /home/frank
    e34a27c3  2019-12-11 17:00:01  debian                  /home/frank
    6e488c3b  2019-12-12 17:00:01  debian                  /home/frank
    17898403  2019-12-16 17:00:01  debian                  /home/frank
    1973305a  2019-12-17 17:00:01  debian                  /home/frank
    9553bedd  2019-12-18 17:00:01  debian                  /home/frank
    fedf749d  2019-12-19 17:00:01  debian                  /home/frank
    8e7cb876  2019-12-23 17:00:01  debian                  /home/frank
    0bd0d102  2019-12-25 17:00:01  debian                  /home/frank
    13d348b0  2019-12-26 17:00:01  debian                  /home/frank
    c7d960aa  2019-12-30 17:00:01  debian                  /home/frank
    f6ea9118  2020-01-01 17:00:01  debian                  /home/frank
    ------------------------------------------------------------------
    26 snapshots
    
    26 snapshots have been removed, running prune
    counting files in repo
    building new index for repo
    [0:35] 100.00%  7806 / 7806 packs
    repository contains 7806 packs (46537 blobs) with 41.110 GiB
    processed 46537 blobs: 0 duplicate blobs, 0 B duplicate
    load all snapshots
    find data that is still in use for 5 snapshots
    [0:01] 100.00%  5 / 5 snapshots
    found 32654 of 46537 data blobs still in use, removing 13883 blobs
    will remove 0 invalid files
    will delete 715 packs and rewrite 752 packs, this frees 5.027 GiB
    [2:28] 100.00%  752 / 752 packs rewritten
    counting files in repo
    [0:01] 100.00%  6571 / 6571 packs
    finding old index files
    saved new indexes as [d137b425 f7caee99 a6e9711a]
    remove 35 old index files
    [1:13] 100.00%  1467 / 1467 packs deleted
    done
    using temporary cache in /tmp/restic-check-cache-916655151
    repository 2f3f6147 opened successfully, password is correct
    created new cache in /tmp/restic-check-cache-916655151
    create exclusive lock for repository
    load indexes
    check all packs
    check snapshots, trees and blobs
    read all data
    [7:47] 100.00%  6571 / 6571 items
    duration: 7:47
    no errors were found
    root@debian:~# 
    

    Am Ende seht ihr noch, wie Restic alle Files testet. Mein Script sieht jetzt so aus.

    #!/bin/bash
    # Script um mit Restic Daten automatisiert zu sichern!
    # Dient zum Sichern der Homepartition auf dem ROCKPro64 NAS!
    
    # Was soll gesichert werden?
    backup_pfad=/home/frank
    
    # Programm Start
    restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ backup $backup_pfad --exclude-file=excludes.txt
    restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ forget --keep-last 3 --keep-monthly 3 --prune
    
    # Testen
    restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ check --read-data
    

    Das dann schön mit einem Cronjob laufen lassen und die Datensicherung ist erledigt 😉

  • ufw - Die einfache Firewall

    Linux
    3
    0 Stimmen
    3 Beiträge
    197 Aufrufe
    FrankMF

    Beispiel um eingehend einen Port für eine IP-Adresse zu erlauben.

    ufw allow from 1.1.1.1 to any port 8000
  • Debian Bookworm 12 - Restic

    Linux
    1
    0 Stimmen
    1 Beiträge
    139 Aufrufe
    Niemand hat geantwortet
  • LMDE Beta

    Linux
    1
    0 Stimmen
    1 Beiträge
    152 Aufrufe
    Niemand hat geantwortet
  • Redis - Zweite Instanz

    Redis
    1
    0 Stimmen
    1 Beiträge
    232 Aufrufe
    Niemand hat geantwortet
  • OpenWRT - Firmware Selektor

    Verschoben OpenWRT & Ubiquiti ER-X
    1
    0 Stimmen
    1 Beiträge
    236 Aufrufe
    Niemand hat geantwortet
  • Kopia 0.7.x released

    Kopia
    1
    0 Stimmen
    1 Beiträge
    221 Aufrufe
    Niemand hat geantwortet
  • Linux Befehle - ls & tail

    Linux
    1
    0 Stimmen
    1 Beiträge
    391 Aufrufe
    Niemand hat geantwortet
  • Wireguard

    Verschoben Wireguard
    4
    0 Stimmen
    4 Beiträge
    880 Aufrufe
    FrankMF

    Etwas schnellerer Weg den Tunnel aufzubauen, Voraussetzung

    wireguard modul installiert Keys erzeugt

    Danach dann einfach

    ip link add wg0 type wireguard wg setconf wg0 /etc/wireguard/wg0.conf Datei /etc/wireguard/wg0.conf [Interface] PrivateKey = <Private Key> ListenPort = 60563 [Peer] PublicKey = <Public Key Ziel> Endpoint = <IPv4 Adresse Zielrechner>:58380 AllowedIPs = 10.10.0.1/32

    Die Rechte der Dateien von wireguard müssen eingeschränkt werden.

    sudo chmod 0600 /etc/wireguard/wg0.conf

    Das ganze per rc.local beim Booten laden. Datei /root/wireguard_start.sh

    ############################################################################################### # Autor: Frank Mankel # Startup-Script # Wireguard # Kontakt: frank.mankel@gmail.com # ############################################################################################### ip link add wg0 type wireguard ip address add dev wg0 10.10.0.1/8 wg setconf wg0 /etc/wireguard/wg0.conf ip link set up dev wg0

    Danach Datei ausführbar machen

    chmod +x /root/wireguard_start.sh

    In rc.local

    /root/wireguard_start.sh

    eintragen - Fertig!