Umiestňujem to sem, pretože mi to dlhý, dlhý čas fungovalo bez dozoru a teraz to nahrádzam docker verziou, ktorú som medzitým vytvoril. To ma privádza k myšlienke, že som o tom nič nenapísal a mal by som. Aby som to v budúcnosti nemusel hľadať, nechám to tu.

Každopádne, používaním systemd timerov namiesto cron jobov získame minimálne lepšiu správu logov, spolu s ďalšími výhodami. To platí iba ak si v tábore obdivovateľov systemd, keďže tak ako pri všetkom na Linuxe existuje viacero iných možností, napríklad init skripty.

Začneme zálohovacím skriptom v /root/restic-env:

#!/bin/sh

export B2_ACCOUNT_KEY=key
export B2_ACCOUNT_ID=id
export RESTIC_PASSWORD=password

exec restic -r b2:my-bucket: "$@"

Nahraď tri premenné hodnotami z kľúča vytvoreného v Backblaze. Potrebuješ oprávnenia na čítanie aj zápis. Odporúča sa tiež obmedziť oprávnenia tohto skriptu na minimum:

chown root:root /root/restic-env
chmod 700 /root/restic-env

Ak máš na danom serveri neroot používateľa na prihlásenie a prácu, nebude ho môcť prečítať. Ďalej pokračuj so systemd timerom v /etc/systemd/system/restic.timer:

[Unit]
Description=Restic backup to Backblaze B2

[Timer]
OnCalendar=*-*-* 3:00:00
Persistent=true

[Install]
WantedBy=timers.target

A samotná služba v /etc/systemd/system/restic.service:

[Unit]
Description=Restic backup to Backblaze B2

[Service]
Type=oneshot
Environment=HOME=/root
ExecStart=/root/restic-env backup /root

Teraz len spusti a povol timer:

systemctl enable restic.timer

Skript bude inkrementálne zálohovať celý tvoj root do Backblaze B2. Všimni si, že toto nemusí zálohovať tvoju databázu, iba všetky súbory. Enjoy!

Odkazy #