btrbk-mail: Use relative instead of absolute calls to system binaries

Make sure to have apropriate PATH set when calling btrbk-mail.
Usually specified in /etc/crontab, and should be correct by default on
all distros.
pull/93/head
Axel Burri 2016-05-09 12:10:13 +02:00
parent df7473f7df
commit eabdba482e
2 changed files with 19 additions and 15 deletions

View File

@ -1,3 +1,7 @@
btrbk-current
* Use relative instead of absolute binary calls in btrbk-mail.
btrbk-0.23.1
* Bugfix: set correct parent section when propagating targets

View File

@ -4,7 +4,7 @@
set -uf
declare -A rsync_src rsync_dst rsync_log rsync_key rsync_opt
now=$(/bin/date +%Y%m%d)
now=$(date +%Y%m%d)
##### start config section #####
@ -48,25 +48,25 @@ mail_body=""
die()
{
/bin/echo "$0 FATAL: $1" 1>&2
/bin/echo "$0 FATAL: exiting" 1>&2
echo "$0 FATAL: $1" 1>&2
echo "$0 FATAL: exiting" 1>&2
exit 1
}
log_error() { [ $loglevel -ge 1 ] && /bin/echo "$0 ERROR: $1" 1>&2 ; }
log_warning() { [ $loglevel -ge 2 ] && /bin/echo "$0 WARNING: $1" 1>&2 ; }
log_info() { [ $loglevel -ge 3 ] && /bin/echo "$0 INFO: $1" 1>&2 ; }
log_error() { [ $loglevel -ge 1 ] && echo "$0 ERROR: $1" 1>&2 ; }
log_warning() { [ $loglevel -ge 2 ] && echo "$0 WARNING: $1" 1>&2 ; }
log_info() { [ $loglevel -ge 3 ] && echo "$0 INFO: $1" 1>&2 ; }
#
# mount all mountpoints listed in $mount_targets
#
for mountpoint in $mount_targets; do
$(/bin/findmnt -r -n -t btrfs $mountpoint 1>&2)
$(findmnt -r -n -t btrfs $mountpoint 1>&2)
if [ $? = 0 ]; then
log_warning "btrfs filesystem already mounted: $mountpoint"
else
log_info "mount $mountpoint"
$(/bin/mount --target $mountpoint 1>&2)
$(mount --target $mountpoint 1>&2)
[ $? = 0 ] || log_error "mount failed: $mountpoint"
fi
done
@ -87,8 +87,8 @@ for key in $rsync_enable; do
rsync_header="### rsync ${rsync_opt[$key]} ${rsync_src[$key]} ${rsync_dst[$key]}"
if [ -d ${rsync_dst[$key]} ]; then
/bin/echo "$rsync_header" >> ${rsync_log[$key]}
ret=$(/usr/bin/rsync ${rsync_opt[$key]} --info=STATS --log-file=${rsync_log[$key]} -e "/usr/bin/ssh -i ${rsync_key[$key]}" ${rsync_src[$key]} ${rsync_dst[$key]})
echo "$rsync_header" >> ${rsync_log[$key]}
ret=$(rsync ${rsync_opt[$key]} --info=STATS --log-file=${rsync_log[$key]} -e "ssh -i ${rsync_key[$key]}" ${rsync_src[$key]} ${rsync_dst[$key]})
if [ $? != 0 ]; then
log_error "rsync failed: $key"
ret+="\nERROR: rsync failed with exit code $?\n"
@ -106,7 +106,7 @@ done
# run btrbk
#
log_info "running btrbk"
ret=$(/usr/sbin/btrbk -c "$config" ${btrbk_opts:-} run 2>&1)
ret=$(btrbk -c "$config" ${btrbk_opts:-} run 2>&1)
exitcode=$?
case $exitcode in
0) status="All backups successful"
@ -123,10 +123,10 @@ if [ "${skip_empty_mail:-no}" = "yes" ] && [ -z "$mail_body" ] && [ $exitcode -e
: # skip email sending if skip_empty_mail=yes
else
# send email
/bin/echo -e "$mail_body" | /bin/mail -s "$mail_subject_prefix - $status" $mailto
echo -e "$mail_body" | mail -s "$mail_subject_prefix - $status" $mailto
if [ $? != 0 ]; then
log_error "failed to send btrbk mail to \"$mailto\", dumping mail body:"
/bin/echo -e "$mail_body" 1>&2
echo -e "$mail_body" 1>&2
fi
fi
@ -137,7 +137,7 @@ fi
# exit on failure!
#for mountpoint in $umount_targets; do
# log_info "btrfs filesystem sync $mountpoint"
# $(/sbin/btrfs filesystem sync $mountpoint 1>&2)
# $(btrfs filesystem sync $mountpoint 1>&2)
# [ $? = 0 ] || die "btrfs filesystem sync failed: $mountpoint"
# sleep 1
#done
@ -148,6 +148,6 @@ fi
#
for mountpoint in $umount_targets; do
log_info "umount $mountpoint"
$(/bin/umount $mountpoint 1>&2)
$(umount $mountpoint 1>&2)
[ $? = 0 ] || log_error "umount failed: $mountpoint"
done