summaryrefslogtreecommitdiff
path: root/bin/backup
diff options
context:
space:
mode:
Diffstat (limited to 'bin/backup')
-rwxr-xr-xbin/backup17
1 files changed, 7 insertions, 10 deletions
diff --git a/bin/backup b/bin/backup
index 3f1d586..059f2dc 100755
--- a/bin/backup
+++ b/bin/backup
@@ -1,17 +1,12 @@
#!/bin/sh
+# Incremental backup using rsync(1).
[ "$USER" = root ] || exec sudo "$0" "$@"
-# incremental backup using rsync(1)
-
-die() { echo "$0: fatal: $@" >&2; exit 1; }
-
-#[ "$(id -u)" = 0 ] || die must run as root
-
-while getopts :v opt; do
+while getopts :Fv opt; do
case $opt in
- (v) optv=v ;;
- (*) echo "Usage: $0 [-v] [[host:]dir]"; exit 1 ;;
+ (F|v) eval "opt$opt=$opt" ;;
+ (*) echo "Usage: $0 [-Fv] [[host:]dir]"; exit 1 ;;
esac
done
shift $((OPTIND - 1))
@@ -25,4 +20,6 @@ case $last in
(*) opt_link=;;
esac
-rsync -DSHxa$optv --exclude-from=/etc/backup/ignore $opt_link / /boot $dest/$date
+[ "$optF" ] && fsfreeze -f / && trap 'fsfreeze -u /' EXIT
+
+rsync -HSxa$optv --exclude-from=/etc/backup/ignore $opt_link / /boot $dest/$date