#!/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!"