diff options
Diffstat (limited to 'lib/beam/common.in')
-rw-r--r-- | lib/beam/common.in | 253 |
1 files changed, 0 insertions, 253 deletions
diff --git a/lib/beam/common.in b/lib/beam/common.in deleted file mode 100644 index bc724c7..0000000 --- a/lib/beam/common.in +++ /dev/null @@ -1,253 +0,0 @@ -#! /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/>. - -# Force C locale -LC_ALL=C -export LC_ALL - -openlog_hook= -prologue_hook= -epilogue_hook= - -# User configuration variables -backup_tar_options= -backup_suffix= -backup_archive_dir= -backup_snapshot_dir= -backup_verbose= -backup_logfile="/var/log/backup" -backup_pidfile="/var/run/beam.pid" -backup_tmp_dir=/tmp - -error() { - echo >&2 $0: $* -} - -logit() { - echo `date`: $* -} - -abend() { - ec=$1 - shift - error $@ - exit $ec -} - -beam_lock() { - 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" - fi - abend 1 "another beam process (pid $pid) is still running; exiting" - fi - echo $$ > $backup_pidfile || exit 1 - epilogue_hook="$epilogue_hook beam_unlock" -} - -beam_unlock() { - 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 -} - -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 - - 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 -$type" - else - error "$libdir/${type}.sh not found" - delayed_exit=1 - fi - - ${type}_check $item || delayed_exit=1 - done - - test -n "$delayed_exit" && abend 1 "aborting" - - tar_suffix=${backup_suffix:-.tar} - - 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 -} - -beam_exec() { - if [ -z "$beam_rsh" ]; then - set -- $(echo "$@" | sed 's/\\\\\([bcfnrtv0]\)/\\\1/g') - "$@" - else - set -- $(echo "$@" | sed 's/\\\\\([bcfnrtv0]\)/\\\1/g;s/[]\[\\\*]/\\&/g') - $beam_rsh "$@" - fi -} - -runhook() { - local hook_list - - eval hook_list=\$$1 - for hook in $hook_list - do - $hook - done -} - -print_version() { - name=$(basename $0) - cat <<EOF -$name (@PACKAGE_NAME@) @PACKAGE_VERSION@ -Copyright (C) 2012-2014 Sergey Poznyakoff -License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> -This is free software: you are free to change and redistribute it. -There is NO WARRANTY, to the extent permitted by law. -EOF - exit 0 -} - -wtf() { - l=$(echo "${1#beam-}"|sed "s|.|.|g") - s=$(echo " " | sed "s|$l|${1#beam-}|") - shift - echo " $s $@" -} - -dry_mail() { - echo "=============================================================" - cat - - echo "=============================================================" -} - -# mail_report FILE -mail_report() { - : ${backup_mailer_program:=/usr/sbin/sendmail -oi -t -F $backup_sender_email} - if [ -n "$dry_run" ]; then - echo "Sending mail using $backup_mailer_program" - backup_mailer_program=dry_mail - fi - if [ -z "$backup_sender_email" ]; then - backup_sender_email=root@$(hostname) - fi - case $backup_sender_email in - "<"*) ;; - *) backup_sender_email="<$backup_sender_email>" - esac - if [ -n "$backup_sender_personal" ]; then - case $backup_sender_personal in - \"*) ;; - *) backup_sender_personal="\"$backup_sender_personal\"" - esac - backup_sender_personal="$backup_sender_personal " - fi - if [ -z "$backup_report_subject" ]; then - backup_report_subject="Backup of $(hostname) on $(date)" - fi - test -n "$backup_report_signature" && - echo "$backup_report_signature" >> $report - (cat - <<EOF -From: ${backup_sender_personal}$backup_sender_email -To: $backup_notify_email -Subject: $backup_report_subject -X-Beam-Items: $backup_items -X-Beam-Round: $round -X-Beam-Level: $level -EOF - if [ -n "$backup_report_headers" ]; then - echo "$backup_report_headers" - fi - echo "" - if [ -n "$backup_report_intro" ]; then - echo "$backup_report_intro" - fi - cat $report - ) | $backup_mailer_program -} - -beam_logrotate() { - local conf=/tmp/beam-logrotate.conf u - if test -z "$backup_logrotate_conf"; then - backup_logrotate_conf="weekly -rotate 4 -" - fi - u=$(umask) - umask 077 - cat > $conf <<EOF -$backup_logfile { -$backup_logrotate_conf -missingok -} -EOF - umask $u - test -d @LOCALSTATEDIR@/lib/beam || mkdir @LOCALSTATEDIR@/lib/beam - logrotate ${dry_run+-d} $verbose --state @LOCALSTATEDIR@/lib/beam/logrotate.state $conf - rm $conf -} |