diff options
Diffstat (limited to 'bin/backup')
| -rwxr-xr-x | bin/backup | 26 |
1 files changed, 17 insertions, 9 deletions
@@ -1,5 +1,7 @@ #!/bin/sh +# A backup a day keeps the doctor away. + usage() { echo "Usage: $0 [-nv] [[[user@]host]:dir] @@ -34,13 +36,19 @@ BACKUP=${1:-$BACKUP} ignore="$HOME/.backupignore" volumes="$HOME" [ -f "$ignore" ] && ignore="--exclude-from=$ignore" || ignore= -last=$(rsync --list-only "$BACKUP/" 2>/dev/null | awk '{r=$NF} END {print r}') -case $last in -([12]*) opt_link=--link-dest=../$last;; -(*) opt_link=;; -esac - -date=$(date +%Y-%m-%d-%H%M%S) +now=$(date +%F) +opt_link='' +past=$(rsync --list-only "$BACKUP/" 2>/dev/null | awk '{print $NF}' | sort -r) +for f in $past +do + case $f in + ([0-9][0-9][0-9][0-9]-*) ;; + (*) continue ;; + esac + [ "$f" = "$now" ] && continue + opt_link="--link-dest=../$f" + break +done -echo "# Backup $volumes to $BACKUP/$date" -exec rsync -HSxa$optv $ignore $opt_link $volumes "$BACKUP/$date" +echo "# Backup $volumes to $BACKUP/$now" +exec rsync -HSXxa$optv $ignore $opt_link $volumes "$BACKUP/$now" |
