#!/bin/sh # Incremental backup using rsync(1). [ "$USER" = root ] || exec sudo "$0" "$@" while getopts :Fv opt; do case $opt in (F|v) eval "opt$opt=$opt" ;; (*) echo "Usage: $0 [-Fv] [[host:]dir]"; exit 1 ;; esac done shift $((OPTIND - 1)) dest=${1:-/.history} date=$(date +%Y%m%d_%H%M%S) last=$(rsync --list-only $dest/ 2>/dev/null | cut -b 47- | tail -1) case $last in (2*) opt_link=--link-dest=../$last;; (*) opt_link=;; esac [ "$optF" ] && fsfreeze -f / && trap 'fsfreeze -u /' EXIT rsync -HSxa$optv --exclude-from=/etc/backup/ignore $opt_link / /boot $dest/$date