mirror of
https://asciireactor.com/o4data/zfs-backup.git
synced 2024-11-22 16:05:06 +00:00
Compare commits
No commits in common. "a5600ff6e6ee8bdae9fb9ef750cc26f795589e23" and "e090fcf21dacee01f8cda81dac9e016f3c702cf5" have entirely different histories.
a5600ff6e6
...
e090fcf21d
47
backup.sh
47
backup.sh
@ -44,8 +44,7 @@ debug()
|
||||
run_send_recv()
|
||||
{
|
||||
ssh_cmd="ssh $SSH_SEND_OPTS -o port=$port $user@$addr"
|
||||
pv_cmd="pv -qL ${speed:-$DEFAULT_SPEED}"
|
||||
if [ "$ZB_TEST_MODE" = "TRUE" ]; then
|
||||
if [ $ZB_TEST_MODE = "TRUE" ]; then
|
||||
echo "$send_cmd | $pv_cmd | $ssh_cmd $recv_cmd"
|
||||
else
|
||||
$send_cmd | $pv_cmd | $ssh_cmd $recv_cmd
|
||||
@ -54,16 +53,16 @@ run_send_recv()
|
||||
|
||||
run_snapshot()
|
||||
{
|
||||
if [ "$ZB_TEST_MODE" = "TRUE" ]; then
|
||||
if [ $ZB_TEST_MODE = "TRUE" ]; then
|
||||
echo zfs snapshot $ZFS_SNAPSHOT_OPTS $dset@$snapid
|
||||
else
|
||||
else
|
||||
zfs snapshot $ZFS_SNAPSHOT_OPTS $dset@$snapid
|
||||
fi
|
||||
}
|
||||
|
||||
run_allow()
|
||||
{
|
||||
if [ "$ZB_TEST_MODE" = "TRUE" ]; then
|
||||
if [ $ZB_TEST_MODE = "TRUE" ]; then
|
||||
echo zfs allow -u $LOCAL_USER $ORIGIN_PERMS $dset
|
||||
else
|
||||
zfs allow -u $LOCAL_USER $ORIGIN_PERMS $dset
|
||||
@ -73,7 +72,7 @@ run_allow()
|
||||
run_remote()
|
||||
{
|
||||
ssh_cmd="ssh $SSH_SEND_OPTS -o port=$port $user@$addr"
|
||||
if [ "$ZB_TEST_MODE" = "TRUE" ]; then
|
||||
if [ $ZB_TEST_MODE = "TRUE" ]; then
|
||||
echo "\`$ssh_cmd $remote_cmd\`"
|
||||
else
|
||||
$ssh_cmd $remote_cmd
|
||||
@ -81,7 +80,7 @@ run_remote()
|
||||
}
|
||||
|
||||
set_compression() {
|
||||
case "$SEND_COMPRESSED" in
|
||||
case $SEND_COMPRESSED in
|
||||
[tTyY]*) ZFS_SEND_OPTS="$ZFS_SEND_OPTS -c"
|
||||
debug "Enabled send as compressed datasets." ;;
|
||||
esac
|
||||
@ -90,14 +89,14 @@ set_compression() {
|
||||
populate_datasets()
|
||||
{
|
||||
while read dset dataset_options; do
|
||||
case "$dset" in
|
||||
case $dset in
|
||||
\#*) continue;;
|
||||
esac
|
||||
|
||||
snapshot_dataset="yes"
|
||||
send_dataset="yes"
|
||||
for option in $dataset_options; do
|
||||
case "$option" in
|
||||
case $option in
|
||||
"nosnap"* )
|
||||
snapshot_dataset=""
|
||||
;;
|
||||
@ -133,8 +132,8 @@ list_datasets()
|
||||
list_remote_datasets() {
|
||||
while read addr user port zroot speed; do
|
||||
echo "=== $user@$addr $zroot ==="
|
||||
if [ "$zroot" ]; then
|
||||
case "$zroot" in
|
||||
if [ $zroot ]; then
|
||||
case $zroot in
|
||||
*"/") ;;
|
||||
*) zroot="$zroot/" ;;
|
||||
esac
|
||||
@ -157,7 +156,7 @@ get_latest_snapshot()
|
||||
get_latest_remote_snapshot()
|
||||
{
|
||||
if [ $zroot ]; then
|
||||
case "$zroot" in
|
||||
case $zroot in
|
||||
*"/") ;;
|
||||
*) zroot="$zroot/" ;;
|
||||
esac
|
||||
@ -165,6 +164,7 @@ get_latest_remote_snapshot()
|
||||
list_cmd="zfs list -t snapshot $zroot$dset"
|
||||
remote_cmd="$list_cmd|tail -n1|cut -d'@' -f2|cut -d' ' -f 1"
|
||||
run_remote
|
||||
|
||||
}
|
||||
|
||||
zfs_allow_origin()
|
||||
@ -179,8 +179,8 @@ zfs_allow_mirrors()
|
||||
{
|
||||
while read addr user port zroot speed; do
|
||||
echo "=== $user@$addr $zroot ==="
|
||||
if [ "$zroot" ]; then
|
||||
case "$zroot" in
|
||||
if [ $zroot ]; then
|
||||
case $zroot in
|
||||
*"/") ;;
|
||||
*) zroot="$zroot/" ;;
|
||||
esac
|
||||
@ -200,7 +200,7 @@ create_snapshots()
|
||||
snapid="`date -I`-`date +%s`-$LOCAL_TZ"
|
||||
for dset in $SNAPSHOT_DATASETS; do
|
||||
run_snapshot
|
||||
debug "Created snapshot $dset@$snapid."
|
||||
debug Created snapshot $dset@$snapid.
|
||||
done
|
||||
}
|
||||
|
||||
@ -208,8 +208,8 @@ send_latest()
|
||||
{
|
||||
while read addr user port zroot speed; do
|
||||
echo "=== $user@$addr $zroot ==="
|
||||
if [ "$zroot" ]; then
|
||||
case "$zroot" in
|
||||
if [ $zroot ]; then
|
||||
case $zroot in
|
||||
*"/") ;;
|
||||
*) zroot="$zroot/" ;;
|
||||
esac
|
||||
@ -218,8 +218,9 @@ send_latest()
|
||||
rset=`echo $dset|cut -d: -f2`
|
||||
dset=`echo $dset|cut -d: -f1`
|
||||
debug "Processing $dset (remote $rset)."
|
||||
snap1=`get_latest_snapshot`
|
||||
snap1=`get_latest_snapshot $dset`
|
||||
send_cmd="zfs send $ZFS_SEND_OPTS $dset@$snap1"
|
||||
pv_cmd="pv -qL ${speed:-$DEFAULT_SPEED}"
|
||||
recv_cmd="zfs recv $ZFS_RECV_OPTS $zroot$rset"
|
||||
run_send_recv
|
||||
done
|
||||
@ -230,8 +231,8 @@ send_increment()
|
||||
{
|
||||
while read addr user port zroot speed; do
|
||||
echo "=== $user@$addr $zroot ==="
|
||||
if [ "$zroot" ]; then
|
||||
case "$zroot" in
|
||||
if [ $zroot ]; then
|
||||
case $zroot in
|
||||
*"/") ;;
|
||||
*) zroot="$zroot/" ;;
|
||||
esac
|
||||
@ -242,6 +243,7 @@ send_increment()
|
||||
snap1=`get_latest_snapshot`
|
||||
snap0=`get_latest_remote_snapshot`
|
||||
send_cmd="zfs send $ZFS_SEND_OPTS -i $dset@$snap0 $dset@$snap1"
|
||||
pv_cmd="pv -qL ${speed:-$DEFAULT_SPEED}"
|
||||
recv_cmd="zfs recv $ZFS_RECV_OPTS $zroot$rset"
|
||||
run_send_recv
|
||||
done
|
||||
@ -251,11 +253,12 @@ send_increment()
|
||||
|
||||
################################### MAIN ####################################
|
||||
|
||||
### Options
|
||||
set -- `getopt "tvl:" "$@"` || {
|
||||
echo "Usage: `basename $0` [-tvl] [command]" 1>&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
ZB_TEST_MODE=FALSE
|
||||
while :; do
|
||||
case "$1" in
|
||||
-t)
|
||||
@ -267,7 +270,7 @@ while :; do
|
||||
ZFS_SEND_OPTS="$ZFS_SEND_OPTS -v"
|
||||
# Current on by default.
|
||||
# ZFS_RECV_OPTS="$ZFS_RECV_OPTS -v"
|
||||
debug "Enabled verbose mode."
|
||||
debug "Enabled terbose mode."
|
||||
;;
|
||||
--) shift; break ;;
|
||||
esac
|
||||
|
Loading…
Reference in New Issue
Block a user