homeserver/roles/mgrote_rsync/templates/rsync_mirror.sh.j2
Michael Grote e39c554ae5
Some checks failed
ansible-lint / gitleaks (pull_request) Successful in 2s
ansible-lint / Ansible Lint (pull_request) Failing after 26s
dd
2024-10-29 15:26:18 +01:00

28 lines
1.1 KiB
Django/Jinja

#!/bin/bash
{{ file_header | default () }}
{% for item in rsync_mirror_dirs %}
{# Header #}
echo "-----------------------"
echo "Source: {{ item.src }}"
{# Mount check source #}
if /usr/sbin/zfs get mounted -H {{ item.src } ; then
{# Mount check destination #}
if [ $(ssh {{ item.dest.split(':') | first }} /usr/sbin/zfs get mounted -H {{ item.dest.split(':') | last }} | cut -f3) -eq "yes" ] ; then
rsync -e "ssh -i /etc/rsync_mirror/.ssh/id_rsync_mirror -o StrictHostKeyChecking=no" --dry-run --bwlimit={{ rsync_mirror_bw_limit }} --archive --verbose --human-readable --stats --compress --fuzzy --force --delete-after --recursive {{ item.src }} {{ item.dest }}
else
echo "Destination-Dataset not mounted!"
fi
else
echo "Source-Dataset not mounted!"
fi
echo ""
{% endfor %}
# --checksum ; https://serverfault.com/questions/211005/rsync-difference-between-checksum-and-ignore-times-options
# TODO
# check if src und dest are mounted
# # check if target dataset is mounted
/usr/sbin/zfs get mounted -H hdd_data/tmp 2>&1 > /dev/null || echo "Dataset not mounted!"