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!