summaryrefslogtreecommitdiff
path: root/bin/backup
diff options
context:
space:
mode:
Diffstat (limited to 'bin/backup')
-rwxr-xr-xbin/backup18
1 files changed, 18 insertions, 0 deletions
diff --git a/bin/backup b/bin/backup
new file mode 100755
index 0000000..2ee6b83
--- /dev/null
+++ b/bin/backup
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# incremental backup using rsync(1)
+
+die() { echo "$0: fatal: $@" >&2; exit 1; }
+
+[ "$(id -u)" = 0 ] || die must run as root
+
+dest=${1:-bip:/home/backup}/$(hostname)
+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
+
+rsync -DSHxav --exclude-from=/etc/backup/ignore $opt_link / /boot /home $dest/$date