64 lines
2.4 KiB
Django/Jinja
64 lines
2.4 KiB
Django/Jinja
#!/bin/bash
|
|
{%- if pillar.restic.repository is defined %}
|
|
export RESTIC_REPOSITORY={{ pillar.restic.mount }}{{ pillar.restic.suffix }}
|
|
{%- else %}
|
|
export RESTIC_REPOSITORY="stfp:{{ pillar.restic.user }}@{{ pillar.restic.host }}:{{ pillar.restic.mount }}{{ pillar.restic.suffix }}"
|
|
{%- endif %}
|
|
export RESTIC_PASSWORD={{ pillar.restic.password }}
|
|
|
|
GOTIFY_URL="{{ pillar.restic.gotify.url }}"
|
|
GOTIFY_TOKEN="{{ pillar.restic.gotify.token }}"
|
|
GOTIFY_PRIO="5"
|
|
GOTIFY_TITLE="backup on $HOSTNAME"
|
|
|
|
restic backup \
|
|
--exclude="*.tmp" \
|
|
--exclude="lost+found" \
|
|
--exclude="Cache" \
|
|
--exclude="cache" \
|
|
--exclude=".cache" \
|
|
--exclude="tmp" \
|
|
--exclude="temp" \
|
|
--exclude="Temp" \
|
|
--exclude="/home/*/go" \
|
|
--exclude="/home/*/.local/share/virtualenv" \
|
|
--exclude="/home/*/.local/share/virtualenvs" \
|
|
--exclude="/home/*/VirtualBox VMs" \
|
|
--exclude="/home/*/.mozillla/firefox/*/minidumps" \
|
|
--exclude="/home/*/.mozillla/firefox/*/storage" \
|
|
--exclude="/home/*/.mozillla/firefox/*/extensions.sqlite" \
|
|
--exclude="/home/*/.mozillla/firefox/*/urlclassifier3.sqlite" \
|
|
--exclude="/home/*/.config/google-chrome/*/Local Storage" \
|
|
--exclude="/home/*/.config/google-chrome/*/Session Storage" \
|
|
--exclude="/home/*/.config/google-chrome/*/Application Cache" \
|
|
--exclude="/home/*/.config/google-chrome/*/History" \
|
|
--exclude="/home/*/.config/google-chrome/*/History-journal" \
|
|
--exclude="/home/*/.config/google-chrome/*/History Provider Cache" \
|
|
--exclude="/home/*/.local/share/flatpak" \
|
|
--exclude="/home/*/.var/app/com.slack.Slack" \
|
|
--exclude="/home/*/.local/share/Trash" \
|
|
--exclude="/home/*/.config/Microsoft/Microsoft Teams" \
|
|
--exclude="/home/*/.wine" \
|
|
--exclude="/home/*/.vim/bundle" \
|
|
--exclude="/home/*/snap" \
|
|
--exclude="/home/*/Downloads" \
|
|
--exclude="/home/*/Nextcloud" \
|
|
--exclude="/home/*/git" \
|
|
--verbose \
|
|
{%- if pillar.podman is defined %}
|
|
{{ salt['cmd.run']('podman info -f "{{.Store.VolumePath}}"', runas=pillar.podman.user ) }} \
|
|
{%- endif %}
|
|
{%- if pillar.containers.mariadb is defined %}
|
|
{{ pillar.containers.mariadb.backup_dir }} \
|
|
{%- endif %}
|
|
/etc \
|
|
/root \
|
|
/home
|
|
|
|
return_code="$?"
|
|
if [[ "$return_code" == "0" ]]; then
|
|
exit 0
|
|
fi
|
|
MESSAGE="$(journalctl -u restic-backup.service -p 5 --since today)"
|
|
curl "$GOTIFY_URL/message?token=$GOTIFY_TOKEN" -F "title=$GOTIFY_TITLE" -F "priority=$GOTIFY_PRIO" -F "message=$MESSAGE"
|