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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
#! /bin/bash
# This script creates a backup of this system. For usage instructions,
# run `backup --help'. For a detailed description of the backup and
# restore procedures, see /export/backup/snapshot/README.
libdir=@LIBDIR@/backup
set -e
. $libdir/common.sh
set +e
ts=`date +%Y%m%d`;
week=`date +%U`
# Add version-specific tar options
tar_version_options() {
set -- $(tar --version | awk 'NR==1 {gsub(/\./, " ",$NF); print $NF}')
if [ $# -ge 2 ]; then
v=$((1 * 1000 + $2))
if [ $v -gt 1025 ]; then
taroptions="$taroptions --level=$level"
fi
fi
}
load_config
taroptions="-Hpax $backup_tar_options $backup_rsh_command"
###########################################################
# Global variables
###########################################################
# Set it to "-v" to make script verbose
if [ -n "$backup_verbose" ]; then
verbose=-v
else
verbose=
fi
# Set it to "echo" to initiate dry-run mode.
dry_run=
# Number of tar errors detected during the run
tarerror=0
level=0
round=0
###########################################################
# Utility functions
###########################################################
help() {
cat <<EOF
usage: $0 [OPTIONS]
makes incremental backup of that system
OPTIONS:
-v, --verbose increase verbosity
-l, --logfile FILE log to FILE (default $backup_logfile)
-n, --dry-run do nothing, print what would have been done
-N, --no-logfile log to stderr
-L, --level N create incremental dump level N
-R, --round N mark archives with incremental round N
--week N force using week number N instead of the current one
-h, --help produce this help list
EOF
exit 0
}
###########################################################
# Main
###########################################################
while [ $# -ne 0 ]
do
case $1 in
-v|--verbose) verbose="$verbose -v";;
-l|--logfile) shift; backup_logfile=$1;;
-n|--dry-run) dry_run=echo;;
-N|--no-logfile) backup_logfile=;;
-h|--help) help;;
-L|--level) shift; level=$1;;
-R|--round) shift; round=$1;;
--week) shift; week=$1;;
*) echo >&2 "$0: unrecognized option $1"; exit 1;;
esac
shift
done
tar_version_options
if [ -n "$backup_logfile" ]; then
exec >>$backup_logfile
exec 2>&1
fi
logit "started"
$prologue_hook
for item in $backup_items
do
eval type=\$${item}_type
${type}_backup $item
done
$epilogue_hook
logit "finished"
# finis coronat opus
|