aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Make.rules2
-rw-r--r--Makefile.am2
-rw-r--r--NEWS6
-rw-r--r--README4
-rw-r--r--backup.in100
-rw-r--r--beam.in77
-rwxr-xr-xcleaner.in85
-rw-r--r--configure.ac2
-rw-r--r--doc/Makefile.am2
-rw-r--r--doc/beam-backup.1in4
-rw-r--r--doc/beam-cleaner.1in4
-rw-r--r--doc/beam-list.1in4
-rw-r--r--doc/beam-module.5in4
-rw-r--r--doc/beam-restore.1in4
-rw-r--r--doc/beam-s3.1in4
-rw-r--r--doc/beam.1in4
-rw-r--r--lib/beam/Makefile.am2
-rw-r--r--lib/beam/common.in264
-rwxr-xr-xlib/beam/fs.sh186
-rwxr-xr-xlib/beam/ldap.sh2
-rwxr-xr-xlib/beam/postgres.sh106
-rw-r--r--lib/beam/s3.sh114
-rw-r--r--list.in68
-rw-r--r--restore.in104
-rw-r--r--s3.in58
25 files changed, 622 insertions, 590 deletions
diff --git a/Make.rules b/Make.rules
index 186de06..cafa879 100644
--- a/Make.rules
+++ b/Make.rules
@@ -1,8 +1,8 @@
# This file is part of BEAM
-# Copyright (C) 2012 Sergey Poznyakoff
+# Copyright (C) 2012-2014 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.
#
diff --git a/Makefile.am b/Makefile.am
index c65a39d..551f7b2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,8 +1,8 @@
# This file is part of BEAM
-# Copyright (C) 2012 Sergey Poznyakoff
+# Copyright (C) 2012-2014 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.
#
diff --git a/NEWS b/NEWS
index 7ef3571..1671079 100644
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,8 @@
-BEAM NEWS -- history of user-visible changes. 2013-08-05
-Copyright (C) 2012, 2013 Sergey Poznyakoff.
+BEAM NEWS -- history of user-visible changes. 2014-03-19
+Copyright (C) 2012-2014 Sergey Poznyakoff.
See the end of file for copying conditions.
Please send mailutils bug reports to <gray@gnu.org.ua>.
Version 1.5, 2013-08-05
@@ -41,13 +41,13 @@ Version 1.2 (git)
First release.
----------------------------------------------------------------------
Copyright information:
-Copyright (C) 2012, 2013 Sergey Poznyakoff.
+Copyright (C) 2012-2014 Sergey Poznyakoff.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
copyright notice and this permission notice are preserved,
thus giving the recipient permission to redistribute in turn.
diff --git a/README b/README
index c407c0a..9e7410c 100644
--- a/README
+++ b/README
@@ -1,8 +1,8 @@
BEAM README file.
-Copyright (C) 2012 Sergey Poznyakoff
+Copyright (C) 2012-2014 Sergey Poznyakoff
See the end of file for copying conditions.
* Introduction
BEAM is a flexible and configurable tool for backup management. Its
name is an acronym for "Backup Easy And Manageable". The tool
@@ -109,13 +109,13 @@ The documentation in man page format is available:
Send bug reports to <gray@gnu.org.ua>.
* Copyright information:
-Copyright (C) 2012 Sergey Poznyakoff
+Copyright (C) 2012-2014 Sergey Poznyakoff
Permission is granted to anyone to make or distribute verbatim
copies of this document as received, in any medium, provided that
the copyright notice and this permission notice are preserved,
thus giving the recipient permission to redistribute in turn.
diff --git a/backup.in b/backup.in
index ca479b1..477b839 100644
--- a/backup.in
+++ b/backup.in
@@ -1,9 +1,9 @@
#! /bin/sh
# This file is part of BEAM
-# Copyright (C) 2012 Sergey Poznyakoff
+# Copyright (C) 2012-2014 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.
#
@@ -20,28 +20,28 @@ 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
+ 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
+ verbose=-v
else
- verbose=
+ verbose=
fi
# Set it to "echo" to initiate dry-run mode.
unset dry_run
# Number of tar errors detected during the run
tarerror=0
@@ -51,13 +51,13 @@ round=0
###########################################################
# Utility functions
###########################################################
help() {
- cat <<EOF
+ cat <<EOF
usage: $0 [OPTIONS]
makes incremental backup of that system
OPTIONS:
-v, --verbose increase verbosity
@@ -68,77 +68,77 @@ OPTIONS:
-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
+ 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
+ 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
backup() {
- logit "started"
-
- runhook prologue_hook
- trap "runhook epilogue_hook" EXIT INT QUIT TERM
-
- if test -n "$backup_retain_interval" &&
- test $backup_retain_interval -gt 0; then
- @LIBEXECDIR@/beam-cleaner --retain $backup_retain_interval $verbose \
+ logit "started"
+
+ runhook prologue_hook
+ trap "runhook epilogue_hook" EXIT INT QUIT TERM
+
+ if test -n "$backup_retain_interval" &&
+ test $backup_retain_interval -gt 0; then
+ @LIBEXECDIR@/beam-cleaner --retain $backup_retain_interval $verbose \
${dry_run+--dry-run} --suffix $backup_suffix $backup_archive_dir
- @LIBEXECDIR@/beam-cleaner --retain $backup_retain_interval $verbose \
+ @LIBEXECDIR@/beam-cleaner --retain $backup_retain_interval $verbose \
${dry_run+--dry-run} --suffix .db $backup_snapshot_dir
- fi
-
- for item in $backup_items
- do
- eval type=\$${item}_type
- ${type}_backup $item
- done
-
- trap - EXIT INT QUIT TERM
- runhook epilogue_hook
-
- logit "finished"
+ fi
+
+ for item in $backup_items
+ do
+ eval type=\$${item}_type
+ ${type}_backup $item
+ done
+
+ trap - EXIT INT QUIT TERM
+ runhook epilogue_hook
+
+ logit "finished"
}
umask ${backup_umask:-077}
prologue_hook="beam_lock $prologue_hook"
if [ -n "$backup_logfile" ]; then
- runhook openlog_hook
- exec >>$backup_logfile
- exec 2>&1
+ runhook openlog_hook
+ exec >>$backup_logfile
+ exec 2>&1
fi
if [ -z "$backup_notify_email" ]; then
- backup
+ backup
else
- report=$backup_snapshot_dir/report.$$
- touch $report
- backup 2>&1 | tee $report
- mail_report $report
- rm $report
+ report=$backup_snapshot_dir/report.$$
+ touch $report
+ backup 2>&1 | tee $report
+ mail_report $report
+ rm $report
fi
# finis coronat opus
diff --git a/beam.in b/beam.in
index 480351c..7281a18 100644
--- a/beam.in
+++ b/beam.in
@@ -1,58 +1,73 @@
#! /bin/sh
+# This file is part of BEAM
+# Copyright (C) 2012-2014 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
help() {
- cat <<EOT
+ cat <<EOT
usage: beam COMMAND [OPTIONS] [ITEM [ITEM...]]
COMMANDS are:
EOT
- for cmd in @LIBEXECDIR@/beam-*
- do
- test -x $cmd && $cmd --wtf
- done
- wtf help display help page for a particular command
- echo ""
- echo "Report bugs to <@PACKAGE_BUGREPORT@>"
- exit 0
+ for cmd in @LIBEXECDIR@/beam-*
+ do
+ test -x $cmd && $cmd --wtf
+ done
+ wtf help display help page for a particular command
+ echo ""
+ echo "Report bugs to <@PACKAGE_BUGREPORT@>"
+ exit 0
}
while [ $# -ne 0 ]
do
- case $1 in
- -h|--help) help;;
- -V|--version) print_version;;
- --) shift; break;;
- -*) echo >&2 "$0: unrecognized option $1"; exit 1;;
- *) break;;
- esac
- shift
+ case $1 in
+ -h|--help) help;;
+ -V|--version) print_version;;
+ --) shift; break;;
+ -*) echo >&2 "$0: unrecognized option $1"; exit 1;;
+ *) break;;
+ esac
+ shift
done
if [ $# -eq 0 ]; then
- error "command not specified"
- abend 1 "try $0 --help for more details"
+ error "command not specified"
+ abend 1 "try $0 --help for more details"
fi
if [ $1 = "help" ]; then
- shift
- if [ $# -eq 0 ]; then
- man 1 beam
- else
- man 1 beam-$1
- fi
- exit $?
+ shift
+ if [ $# -eq 0 ]; then
+ man 1 beam
+ else
+ man 1 beam-$1
+ fi
+ exit $?
fi
if [ -x @LIBEXECDIR@/beam-$1 ]; then
- cmd=@LIBEXECDIR@/beam-$1
- shift
- $cmd $@
+ cmd=@LIBEXECDIR@/beam-$1
+ shift
+ $cmd $@
else
- error "unknown command"
- abend 1 "try $0 --help for more details"
+ error "unknown command"
+ abend 1 "try $0 --help for more details"
fi
diff --git a/cleaner.in b/cleaner.in
index 035892f..0a9a35f 100755
--- a/cleaner.in
+++ b/cleaner.in
@@ -1,7 +1,22 @@
#! /bin/sh
+# This file is part of BEAM
+# Copyright (C) 2012-2014 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
@@ -26,63 +41,63 @@ OPTIONS are:
EOF
exit 0
}
while [ $# -ne 0 ]
do
- case $1 in
- -s|--suffix) shift; suffix=$1;;
- -r|--retain) shift; retainweeks=$1;;
- -v|--verbose) verbose=echo;;
- -n|--dry-run) dry_run=echo; verbose=echo;;
- -h|--help) help;;
- --wtf) wtf $(basename $0) clean up old files; exit 0;;
- --) shift; break;;
- -*) echo >&2 "$0: unrecognized option $1"
- exit 1;;
- *) break
- esac
- shift
+ case $1 in
+ -s|--suffix) shift; suffix=$1;;
+ -r|--retain) shift; retainweeks=$1;;
+ -v|--verbose) verbose=echo;;
+ -n|--dry-run) dry_run=echo; verbose=echo;;
+ -h|--help) help;;
+ --wtf) wtf $(basename $0) clean up old files; exit 0;;
+ --) shift; break;;
+ -*) echo >&2 "$0: unrecognized option $1"
+ exit 1;;
+ *) break
+ esac
+ shift
done
case $# in
-0) echo >&2 "$0: not enough arguments"
- exit 1;;
-1) dir=$1;;
-*) echo >&2 "$0: too many arguments"
- exit 1;;
+ 0) echo >&2 "$0: not enough arguments"
+ exit 1;;
+ 1) dir=$1;;
+ *) echo >&2 "$0: too many arguments"
+ exit 1;;
esac
thisweek=$(date +%U)
# Warning: do not use shell arithmetic expansions on week numbers,
# because weeks prior to 10 begin with 0 and therefore are processed
# as octal numbers. This causes grief for weeks 08 and 09.
if [ $thisweek -gt $retainweeks ]; then
- lastweek=$(expr $thisweek - $retainweeks)
+ lastweek=$(expr $thisweek - $retainweeks)
else
- lastweek=$(expr $thisweek + 54 - $retainweeks)
+ lastweek=$(expr $thisweek + 54 - $retainweeks)
fi
$verbose \# removing from $dir files ending in $suffix and older than week $lastweek
if [ -z "$suffix" ]; then
- find $dir -maxdepth 1 -type f -printf '%f\n'
+ find $dir -maxdepth 1 -type f -printf '%f\n'
else
- find $dir -maxdepth 1 -type f -name "*$suffix" -printf '%f\n'
+ find $dir -maxdepth 1 -type f -name "*$suffix" -printf '%f\n'
fi |
while read name
do
- $verbose \# considering $name
- week=$(expr "$name" : '[^-][^-]*-\([0-9][0-9]*\)-.*')
- if [ $thisweek -ge $week ]; then
- if [ $(expr $thisweek - $week) -gt $retainweeks ]; then
- $verbose \# removing $name
- $dry_run rm $dir/$name
- fi
- else
- if [ $(expr $thisweek + 54 - $week) -gt $retainweeks ]; then
- $verbose \# removing $name
- $dry_run rm $dir/$name
- fi
- fi
+ $verbose \# considering $name
+ week=$(expr "$name" : '[^-][^-]*-\([0-9][0-9]*\)-.*')
+ if [ $thisweek -ge $week ]; then
+ if [ $(expr $thisweek - $week) -gt $retainweeks ]; then
+ $verbose \# removing $name
+ $dry_run rm $dir/$name
+ fi
+ else
+ if [ $(expr $thisweek + 54 - $week) -gt $retainweeks ]; then
+ $verbose \# removing $name
+ $dry_run rm $dir/$name
+ fi
+ fi
done
diff --git a/configure.ac b/configure.ac
index a90c938..6e39a4a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
# This file is part of BEAM -*- autoconf -*-
-# Copyright (C) 2012, 2013 Sergey Poznyakoff
+# Copyright (C) 2012-2014 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.
#
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 846c1de..0d82900 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,8 +1,8 @@
# This file is part of BEAM
-# Copyright (C) 2012 Sergey Poznyakoff
+# Copyright (C) 2012-2014 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.
#
diff --git a/doc/beam-backup.1in b/doc/beam-backup.1in
index be45a44..2438d7b 100644
--- a/doc/beam-backup.1in
+++ b/doc/beam-backup.1in
@@ -1,8 +1,8 @@
.\" This file is part of BEAM -*- nroff -*-
-.\" Copyright (C) 2012 Sergey Poznyakoff
+.\" Copyright (C) 2012-2014 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.
.\"
@@ -11,13 +11,13 @@
.\" 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/>.
.\"
-.TH BEAM\-BACKUP 1 "October 24, 2012" "BEAM" "BEAM User Reference"
+.TH BEAM\-BACKUP 1 "March 19, 2014" "BEAM" "BEAM User Reference"
.SH NAME
beam\-backup \- create a back up.
.SH SYNOPSIS
.B beam backup
[\fB\-vnN\fR] [\fB\-\-verbose\fR] [\fB\-l\fR \fIFILE\fR]\
[\fB\-\-logfile\fR \fIFILE\fR]\
diff --git a/doc/beam-cleaner.1in b/doc/beam-cleaner.1in
index 36f2de7..59a39b4 100644
--- a/doc/beam-cleaner.1in
+++ b/doc/beam-cleaner.1in
@@ -1,8 +1,8 @@
.\" This file is part of BEAM -*- nroff -*-
-.\" Copyright (C) 2012 Sergey Poznyakoff
+.\" Copyright (C) 2012-2014 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.
.\"
@@ -11,13 +11,13 @@
.\" 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/>.
.\"
-.TH BEAM\-CLEANER 1 "October 24, 2012" "BEAM" "BEAM User Reference"
+.TH BEAM\-CLEANER 1 "March 19, 2014" "BEAM" "BEAM User Reference"
.SH NAME
beam\-cleaner \- clean up old backup files.
.SH SYNOPSIS
.B beam\-cleaner
[\fB\-s\fR \fISUF\fR] [\fB\-r\fR \fIN\fs] [\fB\-vn\fR] \
[\fB\-\-suffix\fR \fISUF\fR] [\fB\-\-retain\fR \fIN\fR] \
diff --git a/doc/beam-list.1in b/doc/beam-list.1in
index 0614e81..57aa537 100644
--- a/doc/beam-list.1in
+++ b/doc/beam-list.1in
@@ -1,8 +1,8 @@
.\" This file is part of BEAM -*- nroff -*-
-.\" Copyright (C) 2012 Sergey Poznyakoff
+.\" Copyright (C) 2012-2014 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.
.\"
@@ -11,13 +11,13 @@
.\" 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/>.
.\"
-.TH BEAM\-LIST 1 "October 24, 2012" "BEAM" "BEAM User Reference"
+.TH BEAM\-LIST 1 "March 19, 2014" "BEAM" "BEAM User Reference"
.SH NAME
beam\-list \- list items included in backup
.SH SYNOPSIS
.B beam list
[\fB\-l\fR] [\fB\-\-number\fR]
diff --git a/doc/beam-module.5in b/doc/beam-module.5in
index f650c65..9ba239f 100644
--- a/doc/beam-module.5in
+++ b/doc/beam-module.5in
@@ -1,8 +1,8 @@
.\" This file is part of BEAM -*- nroff -*-
-.\" Copyright (C) 2012 Sergey Poznyakoff
+.\" Copyright (C) 2012-2014 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.
.\"
@@ -11,13 +11,13 @@
.\" 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/>.
.\"
-.TH BEAM\-MODULE 5 "January 16, 2013" "BEAM" "BEAM Programmer Reference"
+.TH BEAM\-MODULE 5 "March 19, 2014" "BEAM" "BEAM Programmer Reference"
.SH NAME
beam\-module \- format of
.BR beam (1)
modules
.SH DESCRIPTION
This manual page explains how to write new modules for
diff --git a/doc/beam-restore.1in b/doc/beam-restore.1in
index bbbfbba..6d24ad8 100644
--- a/doc/beam-restore.1in
+++ b/doc/beam-restore.1in
@@ -1,8 +1,8 @@
.\" This file is part of BEAM -*- nroff -*-
-.\" Copyright (C) 2012 Sergey Poznyakoff
+.\" Copyright (C) 2012-2014 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.
.\"
@@ -11,13 +11,13 @@
.\" 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/>.
.\"
-.TH BEAM\-RESTORE 1 "October 24, 2012" "BEAM" "BEAM User Reference"
+.TH BEAM\-RESTORE 1 "March 19, 2014" "BEAM" "BEAM User Reference"
.SH NAME
beam\-restore \- restore file system from a backup.
.SH SYNOPSIS
.B beam restore
[\fB\-cntv\fR] [\fB\-\-confirm\fR] [\fB\-C\fR \fIDIR\fR]\
[\fB\-\-directory\fR \fIDIR\fR] [\fB\-\-verbose\fR]
diff --git a/doc/beam-s3.1in b/doc/beam-s3.1in
index 68dc66b..a295270 100644
--- a/doc/beam-s3.1in
+++ b/doc/beam-s3.1in
@@ -1,8 +1,8 @@
.\" This file is part of BEAM -*- nroff -*-
-.\" Copyright (C) 2012 Sergey Poznyakoff
+.\" Copyright (C) 2012-2014 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.
.\"
@@ -11,13 +11,13 @@
.\" 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/>.
.\"
-.TH BEAM\-S3 1 "October 24, 2012" "BBE" "BBE User Reference"
+.TH BEAM\-S3 1 "March 19, 2014" "BBE" "BBE User Reference"
.SH NAME
beam\-s3 \- manage a backup s3 bucket
.SH SYNOPSIS
.B beam s3
mount
diff --git a/doc/beam.1in b/doc/beam.1in
index fc15064..0fd3ce5 100644
--- a/doc/beam.1in
+++ b/doc/beam.1in
@@ -1,8 +1,8 @@
.\" This file is part of BEAM -*- nroff -*-
-.\" Copyright (C) 2012 Sergey Poznyakoff
+.\" Copyright (C) 2012-2014 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.
.\"
@@ -11,13 +11,13 @@
.\" 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/>.
.\"
-.TH BEAM 1 "October 24, 2012" "BEAM" "BEAM User Reference"
+.TH BEAM 1 "March 19, 2014" "BEAM" "BEAM User Reference"
.SH NAME
beam \- a backup manager
.SH SYNOPSIS
.B beam
backup [\fIoptions\fB]
diff --git a/lib/beam/Makefile.am b/lib/beam/Makefile.am
index 22c9a12..81385ad 100644
--- a/lib/beam/Makefile.am
+++ b/lib/beam/Makefile.am
@@ -1,8 +1,8 @@
# This file is part of BEAM
-# Copyright (C) 2012 Sergey Poznyakoff
+# Copyright (C) 2012-2014 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.
#
diff --git a/lib/beam/common.in b/lib/beam/common.in
index 4f2184b..94b4565 100644
--- a/lib/beam/common.in
+++ b/lib/beam/common.in
@@ -31,117 +31,117 @@ backup_snapshot_dir=
backup_verbose=
backup_logfile="/var/log/backup"
backup_pidfile="/var/run/beam.pid"
backup_tmp_dir=/tmp
error() {
- echo >&2 $0: $*
+ echo >&2 $0: $*
}
logit() {
- echo `date`: $*
+ echo `date`: $*
}
abend() {
- ec=$1
- shift
- error $@
- exit $ec
+ ec=$1
+ shift
+ error $@
+ exit $ec
}
beam_lock() {
- if [ -r $backup_pidfile ]; then
+ if [ -r $backup_pidfile ]; then
pid=$(head -n 1 $backup_pidfile)
if [ -z "$pid" ]; then
- abend 1 "pidfile $backup_pidfile exists but is unreadable or empty"
+ abend 1 "pidfile $backup_pidfile exists but is unreadable or empty"
fi
abend 1 "another beam process (pid $pid) is still running; exiting"
- fi
- echo $$ > $backup_pidfile || exit 1
- epilogue_hook="$epilogue_hook beam_unlock"
+ fi
+ echo $$ > $backup_pidfile || exit 1
+ epilogue_hook="$epilogue_hook beam_unlock"
}
beam_unlock() {
- rm -f $backup_pidfile
+ rm -f $backup_pidfile
}
tarcode() {
- case $1 in
- 0) logit "success";;
- 1) logit "some files changed while being archived";;
- 2) logit "fatal error occurred, but trying to continue anyway"
- tarerror=$((tarerror + 1));;
- *) logit "unexpected error code $1"
- tarerror=$((tarerror + 1));
- esac
+ case $1 in
+ 0) logit "success";;
+ 1) logit "some files changed while being archived";;
+ 2) logit "fatal error occurred, but trying to continue anyway"
+ tarerror=$((tarerror + 1));;
+ *) logit "unexpected error code $1"
+ tarerror=$((tarerror + 1));
+ esac
}
load_config() {
- local delayed_exit remote
-
- test -z "$BEAM_CONFIG" && BEAM_CONFIG=@SYSCONFDIR@/beam.conf
- if [ -r $BEAM_CONFIG ]; then
- . $BEAM_CONFIG
- else
- abend 1 "configuration file $BEAM_CONFIG does not exist or is unreadable"
- fi
+ local delayed_exit remote
- if [ -z "$backup_items" ]; then
- abend 1 "backup_items not specified"
- fi
-
- if [ -z "$backup_archive_dir" ]; then
- if [ -n "$backup_bucket_name" ]; then
- backup_archive_dir=$backup_mp_s3
+ test -z "$BEAM_CONFIG" && BEAM_CONFIG=@SYSCONFDIR@/beam.conf
+ if [ -r $BEAM_CONFIG ]; then
+ . $BEAM_CONFIG
else
- abend 1 "backup_archive_dir not set"
+ abend 1 "configuration file $BEAM_CONFIG does not exist or is unreadable"
fi
- fi
-
- delayed_exit=
- loaded_types=
- for item in $backup_items
- do
- eval type=\$${item}_type
- if [ -z "$type" ]; then
- error "${item}_type not set"
- delayed_exit=1
- continue
+
+ if [ -z "$backup_items" ]; then
+ abend 1 "backup_items not specified"
fi
+
+ if [ -z "$backup_archive_dir" ]; then
+ if [ -n "$backup_bucket_name" ]; then
+ backup_archive_dir=$backup_mp_s3
+ else
+ abend 1 "backup_archive_dir not set"
+ fi
+ fi
+
+ delayed_exit=
+ loaded_types=
+ for item in $backup_items
+ do
+ eval type=\$${item}_type
+ if [ -z "$type" ]; then
+ error "${item}_type not set"
+ delayed_exit=1
+ continue
+ fi
- if echo "$loaded_types" | grep -wq $type; then
- :
- elif [ -x $libdir/${type}.sh ]; then
- . $libdir/${type}.sh || delayed_exit=1
- loaded_types="$loaded_files
+ if echo "$loaded_types" | grep -wq $type; then
+ :
+ elif [ -x $libdir/${type}.sh ]; then
+ . $libdir/${type}.sh || delayed_exit=1
+ loaded_types="$loaded_files
$type"
- else
- error "$libdir/${type}.sh not found"
- delayed_exit=1
- fi
+ else
+ error "$libdir/${type}.sh not found"
+ delayed_exit=1
+ fi
- ${type}_check $item || delayed_exit=1
- done
+ ${type}_check $item || delayed_exit=1
+ done
- test -n "$delayed_exit" && abend 1 "aborting"
+ test -n "$delayed_exit" && abend 1 "aborting"
- tar_suffix=${backup_suffix:-.tar}
+ tar_suffix=${backup_suffix:-.tar}
- if [ -n "$backup_bucket_name" ]; then
- . @LIBDIR@/beam/s3.sh
- prologue_hook="s3_mount $prologue_hook"
- fi
+ if [ -n "$backup_bucket_name" ]; then
+ . @LIBDIR@/beam/s3.sh
+ prologue_hook="s3_mount $prologue_hook"
+ fi
- remote=${backup_archive_dir%%:*}
- if [ "$remote" != "$backup_archive_dir" ]; then
- beam_rsh="${backup_rsh:-ssh} $remote"
- backup_local_archive_dir=${backup_archive_dir#*:}
- else
- beam_rsh=
- backup_local_archive_dir=$backup_archive_dir
- fi
+ remote=${backup_archive_dir%%:*}
+ if [ "$remote" != "$backup_archive_dir" ]; then
+ beam_rsh="${backup_rsh:-ssh} $remote"
+ backup_local_archive_dir=${backup_archive_dir#*:}
+ else
+ beam_rsh=
+ backup_local_archive_dir=$backup_archive_dir
+ fi
}
beam_exec() {
if [ -z "$beam_rsh" ]; then
set -- $(echo "$@" | sed 's/\\\\\([bcfnrtv0]\)/\\\1/g')
"$@"
@@ -149,105 +149,105 @@ beam_exec() {
set -- $(echo "$@" | sed 's/\\\\\([bcfnrtv0]\)/\\\1/g;s/[]\[\\\*]/\\&/g')
$beam_rsh "$@"
fi
}
runhook() {
- local hook_list
+ loca