Created
June 5, 2019 22:06
-
-
Save rayddteam/87e9bd96ccc7749796cc9a7311d54383 to your computer and use it in GitHub Desktop.
Daily sync SSD data to HDD for backup (or any other local zfs pools)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
SRC="z" | |
DST="backup" | |
DATE=$(date +%Y-%m-%d) | |
### For first time run: | |
# zfs snapshot -r ${SRC}@${DATE} || (echo "Fail to create ${SRC}@${DATE}"; exit 1) | |
# zfs send -R ${SRC}@${DATE} | zfs recv -F ${DST} | |
# exit 0 | |
echo "Today: ${DATE}" | |
LAST_SNAPSHOT=$(zfs list -Hd1 -t snapshot -o name ${DST} | grep -e '[[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}' | sed 's/.*@//' | sort | tail -n1) | |
echo "Transfer snapshots between ${LAST_SNAPSHOT} and ${DATE}" | |
if [ "${LAST_SNAPSHOT}" == "${DATE}" ]; then | |
echo "Already have target snapshot ${DST}@${DATE}"; | |
exit 0; | |
fi | |
echo -n "Creating snapshot ${SRC}@${DATE} ... " | |
zfs snapshot -r ${SRC}@${DATE} || (echo "Fail to create ${SRC}@${DATE}"; exit 1) | |
echo "Done." | |
echo -n "Sending snapshots from ${LAST_SNAPSHOT} to ${DATE} ... " | |
(zfs send -Ri ${LAST_SNAPSHOT} ${SRC}@${DATE} | zfs receive ${DST}) || (echo "Fail to send/receive snapshots."; exit 1) | |
echo "Done." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment