From f05785e333ce5b9119f552a38edae554671b2fbc Mon Sep 17 00:00:00 2001 From: rudson Date: Wed, 15 Nov 2006 22:20:15 +0000 Subject: movendo... git-svn-id: svn+slack://slack.fluxo.info/var/svn/slackbuilds@667 370017ae-e619-0410-ac65-c121f96126d4 --- others/backupninja/backupninja-0.9.3.diff | 133 ++++++++++++ others/backupninja/backupninja-0.9.4.diff | 67 ++++++ others/backupninja/backupninja.SlackBuild | 116 ++++++++++ others/backupninja/backupninja.cron | 8 + others/backupninja/rub | 348 ++++++++++++++++++++++++++++++ 5 files changed, 672 insertions(+) create mode 100644 others/backupninja/backupninja-0.9.3.diff create mode 100644 others/backupninja/backupninja-0.9.4.diff create mode 100755 others/backupninja/backupninja.SlackBuild create mode 100644 others/backupninja/backupninja.cron create mode 100644 others/backupninja/rub (limited to 'others/backupninja') diff --git a/others/backupninja/backupninja-0.9.3.diff b/others/backupninja/backupninja-0.9.3.diff new file mode 100644 index 00000000..101303ac --- /dev/null +++ b/others/backupninja/backupninja-0.9.3.diff @@ -0,0 +1,133 @@ +diff -Naur backupninja-0.9.3.orig/handlers/makecd backupninja-0.9.3/handlers/makecd +--- backupninja-0.9.3.orig/handlers/makecd 2005-12-28 18:19:29.000000000 -0200 ++++ backupninja-0.9.3/handlers/makecd 2006-09-19 17:26:11.000000000 -0300 +@@ -10,6 +10,7 @@ + getconf isoonly yes + getconf imagefile backup.iso + getconf device ++getconf nicelevel 0 + + # define needed executables: + MKISOFS="/usr/bin/mkisofs" +@@ -35,7 +36,7 @@ + fi + + outputfile="$backupdir/$imagefile" +-execstr="$MKISOFS --quiet -R -o $outputfile " ++execstr="nice -n $nicelevel $MKISOFS --quiet -R -o $outputfile " + + str="" + # excludes +diff -Naur backupninja-0.9.3.orig/handlers/mysql backupninja-0.9.3/handlers/mysql +--- backupninja-0.9.3.orig/handlers/mysql 2006-01-19 19:58:56.000000000 -0200 ++++ backupninja-0.9.3/handlers/mysql 2006-09-19 17:22:49.000000000 -0300 +@@ -24,7 +24,7 @@ + local usevserver=no + local vroot + if [ $vservers_are_available = yes ]; then +- if [ -z "$vsname" ]; then ++ if [ ! -z "$vsname" ]; then + # does it exist ? + if ! vservers_exist "$vsname" ; then + fatal "The vserver given in vsname ($vsname) does not exist." +@@ -75,7 +75,7 @@ + # 1. setting the user, so that /home/user/.my.cnf is used. + # 2. specifying the user and password in the handler config, + # which generates a temporary .my.cnf in /root/.my.cnf +-# 3. specify the config file with --defaults-file ++# 3. specify the config file with --defaults-extra-file + # (this option DOESN'T WORK WITH MYSQLHOTCOPY) + # + +@@ -130,16 +130,16 @@ + umask $oldmask + if [ $usevserver = yes ] + then +- defaultsfile="--defaults-file=$vhome/.my.cnf" ++ defaultsfile="--defaults-extra-file=$vhome/.my.cnf" + else +- defaultsfile="--defaults-file=$mycnf" ++ defaultsfile="--defaults-extra-file=$mycnf" + fi + fi + + # if a user is not set, use $configfile, otherwise use $mycnf + if [ "$user" == "" ]; then + user=root; +- defaultsfile="--defaults-file=$configfile" ++ defaultsfile="--defaults-extra-file=$configfile" + else + userset=true; + if [ $usevserver = yes ] +@@ -160,7 +160,7 @@ + + debug "User home set to: $userhome" + [ -f $userhome/.my.cnf ] || fatal "Can't find config file in $userhome/.my.cnf" +- defaultsfile="--defaults-file=$vuserhome/.my.cnf" ++ defaultsfile="--defaults-extra-file=$vuserhome/.my.cnf" + debug "using $defaultsfile" + fi + +diff -Naur backupninja-0.9.3.orig/handlers/rdiff backupninja-0.9.3/handlers/rdiff +--- backupninja-0.9.3.orig/handlers/rdiff 2006-01-31 15:35:46.000000000 -0200 ++++ backupninja-0.9.3/handlers/rdiff 2006-09-19 17:22:49.000000000 -0300 +@@ -17,8 +17,8 @@ + fi + local user=$1 + local host=$2 +- debug "ssh -o PasswordAuthentication=no $host -l $user 'echo -n 1'" +- local ret=`ssh -o PasswordAuthentication=no $host -l $user 'echo -n host is alive'` ++ debug "ssh $sshoptions -o PasswordAuthentication=no $host -l $user 'echo -n 1'" ++ local ret=`ssh $sshoptions -o PasswordAuthentication=no $host -l $user 'echo -n host is alive'` + if echo $ret | grep "host is alive"; then + debug "Connected to $host as $user successfully" + else +@@ -36,8 +36,8 @@ + else + local user=$1 + local host=$2 +- debug "ssh $host -l $user '$RDIFFBACKUP -V'" +- echo `ssh $host -l $user "$RDIFFBACKUP -V | grep rdiff-backup"` ++ debug "ssh $sshoptions $host -l $user '$RDIFFBACKUP -V'" ++ echo `ssh $sshoptions $host -l $user "$RDIFFBACKUP -V | grep rdiff-backup"` + fi + } + +@@ -89,6 +89,7 @@ + getconf type; desttype=$type + getconf user; destuser=$user + getconf host; desthost=$host ++getconf sshoptions + check_consistency "destination" "$type" "$user" "$host" + + ### CHECK CONFIG ### +@@ -147,7 +148,7 @@ + keep="${keep}D" + fi + +-removestr="$RDIFFBACKUP --force --remove-older-than $keep " ++removestr="$RDIFFBACKUP $options --force --remove-older-than $keep " + if [ "$desttype" == "remote" ]; then + removestr="${removestr}${destuser}@${desthost}::" + fi +@@ -155,7 +156,7 @@ + + debug "$removestr" + if [ ! $test ]; then +- output=`$removestr 2>&1` ++ output="`su -c "$removestr" 2>&1`" + if [ $? = 0 ]; then + debug $output + info "Removing backups older than $keep days succeeded." +diff -Naur backupninja-0.9.3.orig/src/backupninja.in backupninja-0.9.3/src/backupninja.in +--- backupninja-0.9.3.orig/src/backupninja.in 2006-01-17 20:22:52.000000000 -0200 ++++ backupninja-0.9.3/src/backupninja.in 2006-09-19 17:22:49.000000000 -0300 +@@ -500,7 +500,7 @@ + echo ${messages[$i]} + done + echo -e "$errormsg" +- } | mail $reportemail -s "backupninja: $hostname $subject" ++ } | mail -s "backupninja: $hostname $subject" $reportemail + fi + + if [ $actions_run != 0 ]; then diff --git a/others/backupninja/backupninja-0.9.4.diff b/others/backupninja/backupninja-0.9.4.diff new file mode 100644 index 00000000..e57a0606 --- /dev/null +++ b/others/backupninja/backupninja-0.9.4.diff @@ -0,0 +1,67 @@ +diff -Naur backupninja-0.9.4.orig/handlers/pgsql backupninja-0.9.4/handlers/pgsql +--- backupninja-0.9.4.orig/handlers/pgsql 2006-10-07 01:45:20.000000000 -0300 ++++ backupninja-0.9.4/handlers/pgsql 2006-11-02 17:43:13.000000000 -0200 +@@ -64,10 +64,10 @@ + if [ $usevserver = yes ]; then + pguid=`$VSERVER $vsname exec getent passwd $PGSQLUSER | awk -F: '{print $3}'` + else +- pguid=`getent passwd postgres | awk -F: '{print $3}'` ++ pguid=`getent passwd $PGSQLUSER | awk -F: '{print $3}'` + fi + [ -n "$pguid" ] || \ +- fatal "No user called postgres`[ $usevserver = no ] || echo \" on vserver $vsname\"`." ++ fatal "No user called $PGSQLUSER`[ $usevserver = no ] || echo \" on vserver $vsname\"`." + debug "chown $pguid $vroot$backupdir" + chown $pguid $vroot$backupdir + debug "chmod 700 $vroot$backupdir" +@@ -77,15 +77,15 @@ + if [ "$databases" == "all" ]; then + if [ $usevserver = yes ]; then + if [ "$compress" == "yes" ]; then +- execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMPALL | $GZIP > $backupdir/${vsname}.sql.gz\"" ++ execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$PGSQLDUMPALL | $GZIP > $backupdir/${vsname}.sql.gz\"" + else +- execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMPALL > $backupdir/${vsname}.sql\"" ++ execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$PGSQLDUMPALL > $backupdir/${vsname}.sql\"" + fi + else + if [ "$compress" == "yes" ]; then +- execstr="su - postgres -c \"$PGSQLDUMPALL | $GZIP > $backupdir/${localhost}-all.sql.gz\"" ++ execstr="su - $PGSQLUSER -c \"$PGSQLDUMPALL | $GZIP > $backupdir/${localhost}-all.sql.gz\"" + else +- execstr="su - postgres -c \"$PGSQLDUMPALL > $backupdir/${localhost}-all.sql\"" ++ execstr="su - $PGSQLUSER -c \"$PGSQLDUMPALL > $backupdir/${localhost}-all.sql\"" + fi + fi + debug "$execstr" +@@ -106,15 +106,15 @@ + for db in $databases; do + if [ $usevserver = yes ]; then + if [ "$compress" == "yes" ]; then +- execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMP $db | $GZIP > $backupdir/${db}.sql.gz\"" ++ execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$PGSQLDUMP $db | $GZIP > $backupdir/${db}.sql.gz\"" + else +- execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMP $db | > $backupdir/${db}.sql\"" ++ execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$PGSQLDUMP $db | > $backupdir/${db}.sql\"" + fi + else + if [ "$compress" == "yes" ]; then +- execstr="su - postgres -c \"$PGSQLDUMP $db | $GZIP > $backupdir/${db}.sql.gz\"" ++ execstr="su - $PGSQLUSER -c \"$PGSQLDUMP $db | $GZIP > $backupdir/${db}.sql.gz\"" + else +- execstr="su - postgres -c \"$PGSQLDUMP $db > $backupdir/${db}.sql\"" ++ execstr="su - $PGSQLUSER -c \"$PGSQLDUMP $db > $backupdir/${db}.sql\"" + fi + fi + debug "$execstr" +diff -Naur backupninja-0.9.4.orig/src/backupninja.in backupninja-0.9.4/src/backupninja.in +--- backupninja-0.9.4.orig/src/backupninja.in 2006-10-07 01:45:20.000000000 -0300 ++++ backupninja-0.9.4/src/backupninja.in 2006-11-02 17:45:38.000000000 -0200 +@@ -442,6 +442,7 @@ + getconf MYSQLDUMP /usr/bin/mysqldump + getconf PGSQLDUMP /usr/bin/pg_dump + getconf PGSQLDUMPALL /usr/bin/pg_dumpall ++getconf PGSQLUSER postgres + getconf GZIP /bin/gzip + getconf RSYNC /usr/bin/rsync + getconf admingroup root diff --git a/others/backupninja/backupninja.SlackBuild b/others/backupninja/backupninja.SlackBuild new file mode 100755 index 00000000..c890cc78 --- /dev/null +++ b/others/backupninja/backupninja.SlackBuild @@ -0,0 +1,116 @@ +#!/bin/bash +# +# slackbuild script for backupninja +# by rhatto at riseup.net +# + +CWD="`pwd`" + +if [ -f ~/.slackbuildrc ]; then + source ~/.slackbuildrc +elif [ -f /etc/slackbuildrc ]; then + source /etc/slackbuildrc +fi + +# default settings +PACKAGE="backupninja" +ARCH="noarch" +VERSION=${VERSION:=0.9.4} +BUILD=${BUILD:=4rha} +SRC_DIR=${SRC:=$CWD} +TMP=${TMP:=/tmp} +REPOS=${REPOS:=$TMP} + +if [ "$ARCH" == "x86_64" ]; then + LIBDIR=/usr/lib64 +else + LIBDIR=/usr/lib +fi + +RTOOL="wget" +PACKAGE_EXT="gz" +SRC="$PACKAGE-$VERSION.tar.$PACKAGE_EXT" +URL="http://dev.riseup.net/backupninja/download/$SRC" + +SRC_DIR="$SRC_DIR/$PACKAGE" +mkdir -p $SRC_DIR + +if [ "$PACKAGE_EXT" == "bz2" ]; then + tarflag="j" +else + tarflag="z" +fi + +if [ "$RTOOL" == "wget" ] && [ ! -f "$SRC_DIR/$SRC" ]; then + wget "$URL" -O "$SRC_DIR/$SRC" +fi + +TMP="$TMP/$PACKAGE" +rm -rf $TMP +mkdir -p $TMP +cd $TMP + +tar xvf$tarflag $SRC_DIR/$SRC +cd $PACKAGE-$VERSION + +if [ -f "$CWD/$PACKAGE-$VERSION.diff" ]; then + patch -p1 < $CWD/$PACKAGE-$VERSION.diff +fi + +./autogen.sh +./configure --prefix=/usr --sysconfdir=/etc --libdir=$LIBDIR +make || exit 32 +make DESTDIR=$TMP/package-$PACKAGE install + +cp $CWD/rub $TMP/package-$PACKAGE/usr/share/$PACKAGE/ +rm -rf $TMP/package-$PACKAGE/etc/cron.d +mkdir $TMP/package-$PACKAGE/etc/cron.hourly +cp $CWD/backupninja.cron $TMP/package-$PACKAGE/etc/cron.hourly/backupninja +chmod +x $TMP/package-$PACKAGE/etc/cron.hourly/backupninja + +CWD="`pwd`" + +cd $TMP/package-$PACKAGE +mkdir etc/backup.d + +mv etc/backupninja.conf etc/backupninja.conf.new + +mkdir install +cat << EOF > install/slack-desc +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +backupninja: backupninja (a silent flower blossom death strike to lost data) +backupninja: +backupninja: Backupninja allows you to coordinate system backup by dropping a few +backupninja: simple configuration files into /etc/backup.d/. Most programs you +backupninja: might use for making backups don't have their own configuration file +backupninja: format. Backupninja provides a centralized way to configure and +backupninja: schedule many different backup utilities. +backupninja: +backupninja: +backupninja: +backupninja: +EOF + +# docs +mkdir -p usr/doc/$PACKAGE-$VERSION + +for file in AUTHORS COPYING ChangeLog INSTALL NEWS README TODO; do + cp $CWD/$file* usr/doc/$PACKAGE-$VERSION/ +done + +# install script +echo '( if [ ! -f "etc/backupninja.conf" ]; then mv etc/backupninja.conf.new etc/backupninja.conf; fi )' > install/doinst.sh + +makepkg -c y -l y $REPOS/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz + +if [ "$CLEANUP" == "yes" ]; then + rm -rf $TMP +fi + diff --git a/others/backupninja/backupninja.cron b/others/backupninja/backupninja.cron new file mode 100644 index 00000000..fa53d81c --- /dev/null +++ b/others/backupninja/backupninja.cron @@ -0,0 +1,8 @@ +#!/bin/bash +# /etc/cron.hourly/backupninja -- cron tab entry for package backupninja + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +if [ -x /usr/sbin/backupninja ]; then + /usr/sbin/backupninja +fi diff --git a/others/backupninja/rub b/others/backupninja/rub new file mode 100644 index 00000000..e05b6fd1 --- /dev/null +++ b/others/backupninja/rub @@ -0,0 +1,348 @@ +# +# backupninja handler to do incremental backups using +# rsync and hardlinks, based on +# +# http://www.mikerubel.org/computers/rsync_snapshots/ +# +# feedback: rhatto at riseup.net | gpl +# lot of enhancements grabbed from "rsnap" handler by paulv at bikkel.org +# +# Config file options +# ------------------- +# +# [general] +# log = rsync log file +# partition = partition where the backup lives +# fscheck = set to 1 if fsck should run on $partition after the backup is made +# read_only = set to 1 if $partition is mounted read-only +# mountpoint = backup partition mountpoint or backup main folder +# backupdir = folder relative do $mountpoint where the backup should be stored +# days = number of backup increments (min = 5) +# lockfile = lockfile to be kept during backup execution +# enable_mv_timestamp_bug = set to "yes" if your system isnt handling timestamps correctly +# tmp = temp folder +# +# [source] +# from = local or remote +# testconnect = when "yes", test the connection for a remote source before backup +# include = include folder on backup +# exclude = exclude folder on backup +# ssh = ssh command line (remote only) +# rsync = rsync program +# rsync_options = rsync command options +# exclude_vserver = vserver-name (valid only if vservers = yes on backupninja.conf) +# numericids = when set to 1, use numeric ids instead of user/group mappings on rsync +# compress = if set to 1, compress data on rsync (remote source only) +# bandwidthlimit = set a badnwidth limit in kbps (remote source only) +# remote_rsync = remove rsync program (remote source only) +# +# [services] +# initscripts = absolute path where scripts are located +# service = script name to be stoped at the begining of the backup and started at its end +# +# You can also specify some system comands if you don't want the default system values: +# +# [system] +# rm = rm command +# cp = cp command +# touch = touch command +# mv = mv command +# fsck = fsck command +# +# You dont need to manually specify vservers using "include = /vservers". +# They are automatically backuped if vserver is set to "yes" on you backupninja.conf. +# + +# config file evaluation + +setsection system +getconf rm rm +getconf cp cp +getconf touch touch +getconf mv mv +getconf fsck fsck + +setsection general +getconf log /var/log/backupninja-rub.log +getconf partition +getconf fscheck +getconf read_only +getconf mountpoint +getconf backupdir +getconf rotate +getconf days +getconf lockfile +getconf nicelevel 0 +getconf enable_mv_timestamp_bug no +getconf tmp /tmp + +setsection source +getconf from local +getconf testconnect no +getconf rsync $RSYNC +getconf rsync_options "-av --delete" +getconf ssh ssh +getconf user +getconf host +getconf include +getconf exclude +getconf exclude_vserver +getconf numericids 0 +getconf compress 0 +getconf bandwidthlimit +getconf remote_rsync rsync + +setsection services +getconf initscripts +getconf service + +# function definitions + +function rotate { + + if [[ "$2" < 4 ]]; then + error "Rotate: minimum of 4 rotations" + exit 1 + fi + + if [ -d $1.$2 ]; then + $nice $mv /$1.$2 /$1.tmp + fi + + for ((n=`echo "$2 - 1" | bc`; n >= 0; n--)); do + if [ -d $1.$n ]; then + dest=`echo "$n + 1" | bc` + $nice $mv /$1.$n /$1.$dest + $touch /$1.$dest + fi + done + + if [ -d $1.tmp ]; then + $nice $mv /$1.tmp /$1.0 + fi + + if [ -d $1.1 ]; then + $nice $cp -alf /$1.1/. /$1.0 + fi + +} + +function move_files { + + ref=$tmp/makesnapshot-mymv-$$; + $touch -r $1 $ref; + $mv $1 $2; + $touch -r $ref $2; + $rm $ref; + +} + +backupdir="$mountpoint/$backupdir" + +# does $backupdir exists? + +if [ ! -d "$backupdir" ]; then + error "Backupdir $backupdir does not exist" + exit 1 +fi + +# setup number of increments + +if [ -z "$days" ]; then + keep="4" +else + keep="`echo $days - 1 | bc -l`" +fi + +# lockfile setup + +if [ ! -z "$lockfile" ]; then + $touch $lockfile || warning "Could not create lockfile $lockfile" +fi + +# nicelevel setup + +if [ ! -z "$nicelevel" ]; then + nice="nice -n $nicelevel" +else + nice="" +fi + +# connection test + +if [ "$from" == "remote" ] && [ "$testconnect" == "yes" ]; then + debug "$ssh -o PasswordAuthentication=no $user@$host 'echo -n 1'" + result=`ssh -o PasswordAuthentication=no $user@$host 'echo -n 1'` + if [ "$result" != "1" ]; then + fatal "Can't connect to $host as $user." + else + debug "Connected to $srchost successfully" + fi +fi + +# rsync options for local sources + +if [ "$from" == "local" ]; then + + rsync_local_options="$rsync_options" + + if [ ! -z "$numericids" ]; then + rsync_local_options="$rsync_local_options --numeric-ids " + fi + +fi + +# rsync options for remote sources + +if [ "$from" == "remote" ]; then + + rsync_remote_options="$rsync_options --rsync-path=$remote_rsync" + + if [ "$compress" == "1" ]; then + rsync_remote_options="$rsync_remote_options --compress" + fi + + if [ ! -z "$bandwidthlimit" ]; then + rsync_remote_options="$rsync_remote_options --bwlimit=$bandwidthlimit" + fi + + if [ ! -z "$numericids" ]; then + rsync_remote_options="$rsync_remote_options --numeric-ids" + fi + +fi + +# set mv procedure + +if [ $enable_mv_timestamp_bug == "yes" ]; then + mv=move_files +fi + +# set excludes + +for path in $exclude; do + EXCLUDES="$EXCLUDES --exclude=$path" +done + +# stop services + +if [ ! -z "$service" ]; then + for daemon in $service; do + info "Stopping service $daemon..." + $initscripts/$daemon stop + done +fi + +echo "Starting backup at `date`" >> $log + +# mount backup destination folder as read-write + +if [ "$read_only" == "1" ] || [ "$read_only" == "yes" ]; then + if [ -d "$mountpoint" ]; then + mount -o remount,rw $mountpoint + if (($?)); then + error "Could not mount $mountpoint" + exit 1 + fi + fi +fi + +# add vservers to included folders + +if [ "$vservers_are_available" == "yes" ]; then + + # sane permission on backup + mkdir -p $backupdir/$VROOTDIR + chmod 000 $backupdir/$VROOTDIR + + for candidate in $found_vservers; do + candidate="`basename $candidate`" + found_excluded_vserver="0" + for excluded_vserver in $exclude_vserver; do + if [ "$excluded_vserver" == "$candidate" ]; then + found_excluded_vserver="1" + break + fi + done + if [ "$found_excluded_vserver" == "0" ]; then + include="$include $VROOTDIR/$candidate" + fi + done +fi + +# the backup procedure + +for SECTION in $include; do + + section="`basename $SECTION`" + + if [ ! -d "$backupdir/$SECTION/$section.0" ]; then + mkdir -p $backupdir/$SECTION/$section.0 + fi + + info "Rotating $backupdir/$SECTION/$section..." + echo "Rotating $backupdir/$SECTION/$section..." >> $log + rotate $backupdir/$SECTION/$section $keep + info "Syncing $SECTION on $backupdir/$SECTION/$section.0..." + + if [ "$from" == "local" ]; then + debug $rsync $rsync_local_options $EXCLUDES /$SECTION/ $backupdir/$SECTION/$section.0/ + $nice $rsync $rsync_local_options $EXCLUDES /$SECTION/ $backupdir/$SECTION/$section.0/ >> $log + if [ "$?" != "0" ]; then + warning "Rsync error when trying to transfer $SECTION" + fi + elif [ "$from" == "remote" ]; then + if [ -z "$user" ] || [ -z "$host" ]; then + error "Config file error: either user or host was not specified" + exit 1 + else + debug $nice $rsync $rsync_remote_options $EXCLUDES -e "$ssh" $user@$host:/$SECTION/ $backupdir/$SECTION/$section.0 + $nice $rsync $rsync_remote_options $EXCLUDES -e "$ssh" $user@$host:/$SECTION/ $backupdir/$SECTION/$section.0 >> $log + if [ "$?" != "0" ]; then + warning "Rsync error when trying to transfer $SECTION" + fi + fi + else + error "Invalid source $from" + exit 1 + fi + + $touch $backupdir/$SECTION/$section.0 + +done + +# remount backup destination as read-only + +if [ "$read_only" == "1" ] || [ "$read_only" == "yes" ]; then + mount -o remount,ro $mountpoint +fi + +# check partition for errors + +if [ "$fscheck" == "1" ] || [ "$fscheck" == "yes" ]; then + umount $mountpoint + if (($?)); then + warning "Could not umount $mountpoint to run fsck" + else + $nice $fsck -v -y $partition >> $log + mount $mountpoint + fi +fi + +# restart services + +if [ ! -z "$service" ]; then + for daemon in $service; do + info "Starting service $daemon..." + $initscripts/$daemon start + done +fi + +# removes the lockfile + +if [ ! -z "$lockfile" ]; then + $rm $lockfile || warning "Could not remove lockfile $lockfile" +fi + +echo "Finnishing backup at `date`" >> $log + -- cgit v1.2.3