aboutsummaryrefslogtreecommitdiff
path: root/backup.in
blob: 983fd72cc772b5505576b353e6cbc68bc273edb6 (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
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#! /bin/bash
# This file is part of BEAM
# Copyright (C) 2012 Sergey Poznyakoff
#
# BEAM is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# BEAM is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with BEAM.  If not, see <http://www.gnu.org/licenses/>.

libdir=@LIBDIR@/beam
set -e
. $libdir/common.sh
set +e
ts=`date +%Y%m%d`;
week=`date +%U`

if [ "$1" = "--wtf" ]; then
  wtf $(basename $0) create a backup
  exit 0
fi

load_config
taroptions="-c -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

Report bugs to <@PACKAGE_BUGREPORT@>
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; backup_logfile=;;
  -N|--no-logfile) backup_logfile=;;
  -h|--help) help;;
  -V|--version) print_version;;
  -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

if [ -n "$backup_logfile" ]; then
  exec >>$backup_logfile
  exec 2>&1
fi
logit "started"

if test -n "$backup_retain_interval" && test $backup_retain_interval -gt 0; then
  @LIBEXECDIR@/beam-cleaner --retain $backup_retain_interval $verbose \
              --suffix .tar.bz2 $backup_archive_dir
  @LIBEXECDIR@/beam-cleaner --retain $backup_retain_interval $verbose \
              --suffix .db $backup_snapshot_dir
fi

runhook prologue_hook
trap "runhook epilogue_hook" EXIT INT QUIT TERM

for item in $backup_items
do
  eval type=\$${item}_type
  ${type}_backup $item
done

trap - EXIT INT QUIT TERM
runhook epilogue_hook

logit "finished"

# finis coronat opus

Return to:

Send suggestions and report system problems to the System administrator.