blob: 33ba3b7e9e511814cbcdc6cac2beb5110abccb13 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#!/bin/sh -e
# Backup to yoda
[ "$USER" = root ] || exec sudo "$0" "$@"
usage='Usage: byo [-cdkx] [/dev/sda2]
Backup local disk to yoda external disk.
Options:
-c close and umount yoda
-d dedupe yoda
-k do not umount and close yoda
-x enable debug traces
'
while getopts :Ccdkx opt; do
case $opt in
(C|c|d|k|x) eval "opt$opt=$opt" ;;
(*) printf %s "$usage"; exit 1 ;;
esac
done
shift $((OPTIND - 1))
[ "$optx" ] && set -x
dev=$1
yoda_uuid='8c463221-6bb7-414e-9060-c9570bb3a6bb'
[ "$dev" ] || dev=$(blkid --uuid "$yoda_uuid")
dest=/mnt/backup/$(hostname)
[ -b /dev/mapper/yoda ] && noclose=1 || cryptsetup open "$dev" yoda
findmnt /dev/mapper/yoda /mnt >/dev/null && noumount=1 || mount /dev/mapper/yoda /mnt
time backup -v "$dest"
# [ ! "$optC" ] || backup -v -d "$dest" clean
[ ! "$optd" ] || time duperemove -drh --hashfile="$dest/.hashfile" "$dest"
df -h / "$dest"
ls -v "$dest"
[ ! "$optk" ] || noumount=1 noclose=1
[ ! "$optc" ] || noumount='' noclose=''
[ "$noumount" ] || umount /mnt
[ "$noclose" ] || cryptsetup close yoda
echo "bye"
|